メシのタネ

Webプログラミング 備忘録

  • DOMをPHPで操作できたらいいよね

    そうだよね。そう思うよね。JavaScriptでやると、画面がガタついたりするもんね。そうならないようにする方法もあるかもしれないけど、僕はできませんので、サーバー側でなんとかできたらええなぁと思って挑戦したけど、できませんでしたよ。PHP標準でHTMLをDOMにできるらしい今、技[...]

    続きを読む
  • 設計書ってなんで書くの?

    設計書をなぜ書くのかから始めてかれこれ3年近くこの禅問答をやっているわけですが、いまだに答えは出ません。ただ、その禅問答をやる中で設計書に対する取り組み方は大きく変わったので、その一部でも書いていきたい。基本設計はとにもかくにも必要だと思う設計書はいらぬ!という話をよく聞くし、自分[...]

    続きを読む
  • 書ききってやる。

    久々に書いてみる。久々に文章を書くということをやってみようと思う。伝える作業を観察したいと思ったからそうしたいと考えた。情緒的な文章は基本的にゴミ箱にぽいしてきましたが、情緒的なのも自分だと思う。「文章をかくという作業は、とりもなおさず自分と自分をとりまく事物との距離を確認すること[...]

    続きを読む
  • 普通の会社で2年普通に働いて思う事

    えらい寒くなりました。文句言いながらも現職を続けて2017年12月1日にめでたく2年がたちました。分かりやすいが乱暴に言えばITドカタと呼ばれる業界に入って案件のヒエラルキーの無慈悲さを痛感しながらも、それでもしょうがないと頑張る人たちに心を打たれながら「じゃあ俺も」と頑張れない自分に挫折して、とあ[...]

    続きを読む
  • jQueryUiのDatepicker利用時にminDate設定するとバグる件

    題名の通りなんですが、DatepickerでminDate使うとバグります。また後でキャプチャ見て貰いますけど、灰色の部分が、minDateで設定した日付が反復して出るようになるんですね。こういうの気が付かない人がいるかも知れませんが、ChoromeでminDate設定してる人は気にしてみてくだ[...]

    続きを読む

【API】動画をAPIで取得する時の考え方 Data API

sensensenshaen
とりあえず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);


私はこんな感じで取得してます。

関連記事

  1. PHPサムネイル
  2. 2012.09.07

    【PHP】mb_substr
  3. 2012.09.19

    【PHP】クラス
  1. 2017.06.24 5:12pm

    YouTube.phpが見つかりません

    • 0
    • 0