PHPでGoogle Image Search APIを使う

自分のウェブサイトにキーワードに関連した画像を貼り付けたいと思います。
Googleのイメージ検索(Google Image Search API)を使い、PHPで取得する方法を使います。

API Keyの取得

APIを使うには自分自身のKeyを取得する必要があります。
ここでは関係ないですが、このKeyは他の検索でも同じものを使うことができます。

URL

検索のためのURLを与えるとJSON形式で検索結果が戻ってきます。
基本的なURLは次の通りです。
vはバージョンです。今のところ1.0だそうです。
keyには自分のAPI Keyをセットします。
qには検索語をセットします。日本語のときはURLエンコードする必要があります。また「hl=ja」を付けるとよいでしょう。
具体的な使い方は後述します。

https://ajax.googleapis.com/ajax/services/search/images
v=1.0
key={API Key}
q={検索語}

JSON

検索結果はJSON形式で得られます。
PHP5ではJSON形式のデータが簡単に扱えるようになりました。

$arrs=json_decode(JSON形式の文字列, TRUE);

これだけでJSON形式の文字列を連想配列に取り込むことができます。
ポイントは第2引数です。指定しないとオブジェクト形式になります。「TRUE」を指定すると連想配列になります。
私は連想配列の方が使いやすいので「TRUE」を指定します。
詳しくはYou Look Too Cool » PHPでJSONを使うを参考にしてください。

サンプル

$json="[{"id":"1","name":"taro"},{"id":"2","name":"jiro"}]";
$arrs=json_decode($json, TRUE);

結果

$arrs[0]["id"] => "1"
$arrs[0]["name"] => "taro"
$arrs[1]["id"] => "2"
$arrs[1]["name"] => "jiro"

PHPサンプル

取得した画像データを単純に並べる場合のサンプルを示します。
{API Key}には自分のAPI Keyをセットしてください。

print google_image("シロナガスクジラ");
function google_image($word){
  $baseurl="https://ajax.googleapis.com/ajax/services/search/images?";
  $baseurl.="v=1.0&hl=ja&key={API Key}&q=";
  $myurl=$baseurl.urlencode($word);
  $myjson=file_get_contents($myurl);
  $recs=json_decode($myjson,true);
  $str.="<p>";
  foreach($recs[responseData][results] as $rec){
    $str.="<img height=150px src=".$rec[unescapedUrl].">";
  }
  $str.="</p>";
  return $str;
}

コメント

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