wordpressでのWebAPI利用の仕方

wordpressでのWebAPI利用
リクエストパラメータへ値を指定するときに
コード内へ直線記述していくと
おなじようなコードを何種類も用意することになり面倒
このため、wordpressの
カスタムフィールド機能を使い
リクエストパラメータを
記事ごとに変えれるように設定
カスタムフィールドは、wordpressの各記事ごとに
指定が可能な、任意の設定値のこと
カスタムフィールドは、
名前と値の組み合わせからなり
名前と値は、自由に設定できる
wordpressで、WebAPIを使うには
記事ごとに
カスタムフィールドに
リクエストパラメータの値を設定しておいて
これを
WebAPIのリクエストパラメータとして
参照すれば、表示する情報を
記事やテンプレごとに使い分けることができる
カスタムフィールドの値を取得するときには
wordpressのテンプレタグの
post_custom()
を使う
post_custom()の引数へ
カスタムフィールドの名前を指定する

PHP出力の時のエスケープ

PHP出力の時のエスケープ
APIから取得しているデータを出力するときにほ、
セキュリティーを確保するため
htmlspecialchars()
を使い、エスケープするのがベスト
これは、scriptと見なされる特殊文字や記号を
無害化するために変換するもの
おもに、SQLの攻撃対策に使われることが多い
wordpressでも
esc_html()
esc_attr()
などで、エスケープすることが可能

HTMLて取得したデータをリスト表示

HTMLで、取得したデータをリスト表示するには
WebAPIで!一番使うのが
取得し多データをリスト表示するというもの
これをやるには、PHPでの処理が必須
やり方は少し複雑になる
まず、パースしたXMLデータは、オブジェクト型になっている
お店情報とか、画像など、いろいろあるけど
各項目は、個別に取り出して処理できる
このときに、使うのが
配列の値
一つずつ代入しなごら繰り返す foreach文
foreach文の繰り返し処理で
1件ごとにデータを取り出しながら
HTMLタグをつけ、ブラウザーで表示すれば
リスト表示できる
これは、Amazonや楽天などの
商品検索結果を出すのによく使う
ループしながら表示していくときに、
取得したデータ、例えばリンク先URLとか
住所、電話番号とかを表示するには
PHPの echo で表示していく
このとき、表示する個別データを指定するには
PHPのアロー演算子
->
を使う
例えば、繰り返すときのforeach()が
foreach($libraries as $library)
なら
$libraries の中身を $libraryへ配列の値を一つずつ
代入していく
ここで、住所を示すのが
address なら、
echo $library->address;
で住所が表示される
また、電話番号を示すのが
tel ならば
echo $library->tel;
で電話番号が表示される
そして、リンク先URLが
url なら
echo $library->url;
でリンク先urlになるし、
サイト名が site なら
echo $library->site;
そして、これらをaタグで組合せれば
リンクできるようになる
もし、階層が深いなら
->をつなげて指定する
例えば、
電話番号 telの下に
携帯mobile
非常用 emergency
があって、携帯のほうを出したいなら
echo $library->tel->mobile;
というかんじになる

var_dump()で中身確認

変数の中身を確認する方法
変数へ格納したオブジェクトの中身をみるには
var_dump()を使う
例えば、前回なら
$libraries = simple_xml_loadfile($url);
で$librariesへ格納しているので
中身をみたいなら
var_dump($libraries);
とすればok
これは、
配列、論理値などでもみることができる
WebAPIでは、中身の確認することが多いため覚えておくと
とても楽になる

simple_xml_loadfile()について

simple_xml_loadfile()について
simple_xml_loadfile()で、
リクエスを送信して、レスポンスをパースします
レスポンスのxmlデータは、
複数の項目がひとまとまりになっていて
そのままだと、個別の項目だけを選んで処理したり
表示することがてきない
例えば、お店情報なら
お店の名前の固まりになってしまうため
何の情報かわからなくなってしまう
そこて、使うのが
simple_xml_loadfile()
これで、PHPて処理しやすいオブジェクトにする
これを、XMLをパースするともいう
simple_xml_loadfile()の書式は
simple_xml_loadfile( リクエストURL );
となる
これを変数へ格納すれば、さらに使いやすくなる
$libraries = simple_xml_loadfile($url);
リクエストURLは、
$urlのように
変数へ格納しておいてから
引数へ指定すると
http://~
と書かなくていいので楽になる
これで、さらに今回の場合は
$librariesへオブジェクトを代入しているので
さらに扱いやすくなっている

WebAPIとリクエストURL

データをブラウザーへ表示するには、
PHPで処理する
WebAPIを使うには、リクエストURLを組み立てる必要がある
$url = ‘ベースURL’;
//パラメータ
$appkey = ‘アプリのAPI key’;
$pref=’都道府県名’;
$city=’市区町村’;
//リクエストURLを組み立てる
$url =”$url?appkey=$appkey&pref=$pref&city=$city”;
解説メモ
リクエストURLは、
ベースURLへ
?をつけて
パラメータを
&でくっつけていく
ほとんどの場合、API keyは必須
今回のリクエストURLは
変数だとわかりにくいから
例にしてみた
$url = ベースURL?appkey=アプリのAPI key&pref=都道府県名&city=市区町村
となる

PHP構文のメモ

PHPの構文のメモ
WebAPIを使うには、JavascriptやPHPが必要になります
まず!処理ができないと、せっかく楽しいプログラミングも
苦痛になります
おすすめなのは、
ドットインストールという動画サイトです
実際に動いているところも動画で見れますし
ソースコードも会員登録すれば見れます
ちなみに、会員登録は無料です
以下は簡単な構文のメモになります
echo
PHPで文字列を表示するのに使います
配列
0から数えていきます
なので、一番最初の値は、0番目となります
データの連結には
.
を使います
if~else文
もしも~ならという処理に作ります
構文は
if(条件){
//行いたい処理
}elseif(条件その2){
//条件その2になったときの処理
}else{
//それ以外のときの処理
}
たぶん、一番多く使います
ログインのチェックとかに使えます
foreach文
foreach( 配列 as 配列の値を一つずつ代入する変数){
//繰り返す処理
}
for文とにてるけど、1つずつ代入しながら繰り返す
のがポイントです
これは、WebAPIで、お店の名前とかが大抵は配列なので
これを一つずつ表示するのに使います

WebAPIとwordpress

WebAPIと組み合わせたwordpressサイトのページ生成
まず、サーバへリクエストがくる
リクエストを受け取ったwordpressがDBへ問い合わせする
DBから必要な情報が戻ってくる
DBから必要な情報を受け取ったwordpressが
WebAPIを提供する各社のサーバへ対してリクエストを送る
API提供者からレスポンス画返ってくる
wordpressが必要な情報と、APIレスポンスを組み合わせ、
HTMLページ生成
この一連の流れはPHPや
wordpressのカスタムフィールド機能を使う
このため、wordpressでカスタムフィールド関連プラグインを
入れておいたほうがやりやすい