WordPressでWebサービス(API)と連携したサイトを作る方法【サンプルコード有り】GETメソッド/POSTメソッド

Webサービスと連携したサイトを作りたい場合、WordPressから外部Webサービスのサーバーにアクセスが必要になります。

各Webサービスが提供しているAPIを利用できればとても便利なサイトが作れますよね。WordPressで連携した方法を作ってみましょう。

多少、WordPressをカスタマイズやHTMLの知識がある方ならそれほど難しくなくできるかと思います。GETメソッド、POSTメソッドのどちらかご自身の利用したいサービスの都合の良い方で試してみてくださいね。

HTTPで他サーバーと通信

WordPressのHTTP APIに含まれる関数を用います。GETメソッドの場合、wp_remote_get、POSTメソッドの場合、wp_remote_postという関数を用います。

  • GETメソッド:wp_remote_get
  • POSTメソッド:wp_remote_post

1つ目のパラメータにアクセスするアドレスを指定します。

※アクセスの際にオプションを設定したい場合、2つ目のパラメータにキーを持つ連想配列を指定します。主なキーとして

  • タイムアウトまで秒数:timeout
  • trueを指定すると結果が帰ってくるまで待ち、falseを指定すると結果を待たずに次の処理に進む:blocking
  • HTTPヘッダーの連想配列で各要素をヘッダー名と値のペアにする:headers
  • クッキーの連想配列で各要素をクッキー名と値のペアにする:cookies

戻り地の連想配列の内容は、

  • レスポンスボディ:body
  • ステータスコードと文字列が含まれる連想配列:response
  • HTTPヘッダの連想配列:headers
  • クッキーの連想配列:cookies

GET

GETメソッドの場合、wp_remote_get関数を使います。

商品検索APIなどの場合のサンプルコードです。見つかったJSON文字列が返されたらwp_remote_get関数でこのアドレスにアクセスし、結果のJSON文字列をデコードして商品情報を出力します。

<?php
$keyword="○○○○○";//検索キーワード
$AppID="○○○○○";//アプリケーションID
$url ="http://○○○○○.○○○?appid=".$AppID."&query=".$keyword; //APIで指定されたURL
$response=wp_remote_get($url);
$objs=json_decode($response['body']);
$items=$objs->ResultSet->{0}->Result;
for($i=0; $i<10; $i++):$item=$items->{$i};
echo $item->Name;
endfor;
?>

POST

POSTメソッドの場合は、wp_remote_post関数を使います。

POSTメソッドの場合のサンプルコード記載します。内容は必要に応じて変更してみてください。

<?php
$url ="";
$params=array(
'httpversion'=>'1.1',
'user-agent'=>'Yahoo AppID:アプリケーションID',
'body'=>array(
'○○○○○'=>'○○○○○'
));
$response=wp_remote_post($url,$params);
$xml=new SimpleXMLElement($response['body']);
$products=$xml->Result->Pruductlist->Product;
for($i=0;$i<count($words);$i++):$product=$products[$i];
echo $product->xxxxx;
?>

API

Yahooや楽天、いろいろなWebサービスがAPIを提供しています。これらのコードを使って便利なサイトを作ってみても良いですね。

タイトルとURLをコピーしました