
とりあえずGoogleの公開してるAPI使って動画の取得に成功しました。
私にとってこれ結構複雑なので、完璧にできる!って説明ができませんが、
この流れだけでもシェアできたらなぁと思います。一応取得までのコードは置いてあります。
なんか変なトコあるかもしれませんが、よろしくお願いします。
ライブラリのダウンロード
まずはライブラリを落とします。
この中からPHPを取ってきます。
今度はこれを解凍して、srcフォルダの中のGoogleを取り出します。
それからこいつらを自分が使いたいサービスが入ってるフォルダにぶちこみます。
インクルードパスの設定
昨日の記事のように私は設定してます。
これを設定したら、ファイルを読み込ませます。
Google/Client
Google/Service/YouTube
こいつらを読み込ませます。
Google_Clientクラスを使う
コレを使う為には、APIキーが必要になります。
取得したキーをsetDeveloperKeyメソッドにぶち込みます。
Google_Service_YouTubeを使う
多分さっきのメソッドを使うと、API使っていいよって許可が下りるんだと思います、
実際にAPIを使うクラスGoogle_Service_YouTubeクラスに対して、
さっきのオブジェクトをぶち込みます。
ファイルのインクルードが正常なら
これで動くはずです。
$DEVELOPER_KEY = 'APIキーに変更してね!'; $client = new Google_Client(); $client->setDeveloperKey($DEVELOPER_KEY); $obj = new Google_Service_YouTube($client);
検索パラメータを元にデータを取得
この処理は使う事が多いので関数にしとくといいかも知れません。
クエリパラメータはコチラを参考にしてもらうといいです。
アカウントが無いと参照することが出来ないと思います。
で、とりあえず、orderの値を変えるだけでも面白いことができます。
function get_obj($obj,$query)
{
$searchResponse = $obj->search->listSearch('id,snippet', array(
'q' => $query,
'maxResults' => 1, //データ取ってくる件数
// 'regionCode' => 'JP' //日本語だけ
// 'order' => 'viewCount' // 再生回数
// 'order' => 'rating' // 評価
// 'order' => 'relevance' // 関連動画
// 'order' => 'title' // titleのアルファベット順
// 'order' => 'date' // 新しいもん順
));
return $searchResponse;
}
これで欲しいデータが返ってくるので
後は煮るなり焼くなりすると良いと思います。
画像とかが欲しいなら
$obj->items[0][“snippet”][“thumbnails”][“modelData”]
IDが欲しいなら
$obj->items[0][“id”][“videoId”]
こんな感じで書いていきます。
ほかにもデータ色々入ってるので、
オブジェクトdumpして調べてみて下さい。
コード
今回は色んな事情で正しく動くとは限りませんが、一応こんな流れでやるよ的なコードをのっけておきます。
誰かの参考になれば幸せです。
それと本家コードのリンクのっけときます。
set_include_path(get_include_path().PATH_SEPARATOR.dirname(__FILE__).'/');
$path = array("Google/Client.php","Google/Service/YouTube.php");
foreach($path as $val) {
require_once($val);
}
$DEVELOPER_KEY = '------';
$client = new Google_Client();
$client->setDeveloperKey($DEVELOPER_KEY);
$obj = new Google_Service_YouTube($client);
$query = "検索したいワード";
function getthubnail($obj,$query)
{
$searchResponse = $obj->search->listSearch('id,snippet', array(
'q' => $excerpt,
'maxResults' => 1,
'type' => 'video',
'order' => 'viewCount'
));
return $searchResponse;
}
$moviedata = getthubnail($obj,$query);
私はこんな感じで取得してます。


コメントを残す