この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
よく訓練されたアップル信者、都元です。前回はFacebook APIからJSON形式のデータを取得してみました。今日は、Google APIからデータを取り出してみましょう。
クライアントの登録
Google APIでも OAuth 2.0 を利用していますので。Facebookと同じようにクライアントの登録が必要です。
Googleに普通にログインした状態で、https://console.developers.google.com/projectを開いてください。
Facebookではクライアントのことを「App」と呼んでいましたが、Googleにおいては「Project」と呼んでいるようです。というわけでプロジェクトを作りましょう。
任意のプロジェクト名(アルファベットが良いでしょう)をいれてCreateをクリックします。
プロジェクトの作成には数十秒の時間がかかります。作成が終わると、このような画面になりました。左側のメニュー内から「APIs」を選んでクリックします。
色々ありますが、今回はYouTubeでも使ってみますか。
「Enable API」をクリックしましょう。
このように有効化されたら、引き続き、左側のメニューから「Credentials」を選択します。
「Create new Client ID」の方を選びます。
「Installed application」を選んで「Configure content screen」ボタンをクリック。
クライアント確認用のダイアログ設定ですね。Product nameに、任意の名前を入れ、Saveします。
再びこの画面に戻ってくるので、あらためて「Installed application」、そして「Other」を選んで「Create Client ID」ボタンをクリック。
無事作成できました。ここに表示されているClient IDとClient sercretは後ほど使いますので、控えておいてください。
aurlでYouTube検索をしてみる
前回と同じように、aurlを利用します。前回インストールしていない方は、自分のマシンのターミナル(コマンドライン)を開いて、下記のコマンドを実行してaurlをインストールしてください。
$ brew tap classmethod/repos
$ brew install aurl
$ aurl -V
1.0
次に、このaurlコマンドを使ってFacebookにアクセスするため、下記の内容の設定ファイルを~/.aurl/profiles配置または追記します。
[google]
client_id = 前節で控えておいたClient ID
client_secret = 前節で控えておいたClient sercret
auth_server_auth_endpoint = https://accounts.google.com/o/oauth2/auth
auth_server_token_endpoint = https://www.googleapis.com/oauth2/v3/token
redirect = urn:ietf:wg:oauth:2.0:oob
scopes = https://www.googleapis.com/auth/youtube https://www.googleapis.com/auth/youtube.force-ssl https://www.googleapis.com/auth/youtube.readonly
そしてコマンドを実行。
$ aurl --profile google https://www.googleapis.com/youtube/v3/search?part=snippet&type=video&q=%E6%9D%BE%E6%B5%A6%E7%9C%9F%E4%B9%9F
Open https://accounts.google.com/o/oauth2/auth?(省略) and get code
Enter code:
すると、上のように「このURLを開いて、コードを得てください」というメッセージと共に、コードの入力待ちとなります。言われた通りにコピペでブラウザにURLを貼り付けて開きましょう。
すると、上記のような確認ダイアログが現れますのでOKをクリック。
今回はFacebookのように悲しいことにはなりませんでした。よかった。この中の認証コード部分を再びクリップボードにコピーし、それを先ほどの「Enter code: 」に対する応答として与えてやります。すると…
{
"kind": "youtube#searchListResponse",
"etag": "\"xmg9xJZuZD438sF4hb-VcBBREXc/hPNmQ1rDZKpxnpSyR-bRMUwuOfU\"",
"nextPageToken": "CAUQAA",
"pageInfo": {
"totalResults": 2393,
"resultsPerPage": 5
},
"items": [
{
"kind": "youtube#searchResult",
"etag": "\"xmg9xJZuZD438sF4hb-VcBBREXc/720EQPxXTy1I7wUu9FGNjKZbFD0\"",
"id": {
"kind": "youtube#video",
"videoId": "iv_NAdKM3iU"
},
(略)
出ました。GoogleはJSONを整形して返してくれるようで、jqによる整形は要りませんでした。しかし、結構大量のデータがもさっと出てくるので少し交通整理をしたいと思います。
この結果は、動画を検索したものですが、ひとまず欲しいのは動画のタイトルとIDでしょう。膨大の情報の中から必要な情報だけを抜き出すのもjqの仕事です。下記は、コマンドの意味は理解できないかもしれませんが、特に難しいことは考えずに実行してみてください。
$ aurl --profile google https://www.googleapis.com/youtube/v3/search?part=snippet&type=video&q=%E6%9D%BE%E6%B5%A6%E7%9C%9F%E4%B9%9F \
| jq '.items[] | {"id": .id.videoId, "title": .snippet.title}'
結果
{
"id": "iv_NAdKM3iU",
"title": "ギター芸人 新喜劇松浦真也さんの演奏まとめ"
}
{
"id": "yKKIcIrZoN0",
"title": "松浦真也 ハプニング!"
}
{
"id": "VzJ_mLfdQIc",
"title": "【第二弾】NMB48 新喜劇 名トリオ「吉田朱里・松浦真也・すっちー」婦警編 Part2"
}
{
"id": "gk21tZU4oDs",
"title": "よしもと新喜劇 松浦ギター集"
}
{
"id": "4tFZfclaT64",
"title": "新喜劇 松浦真也ギター&吉田裕 そのリズムやめろ"
}
といううわけで、あとはhttps://www.youtube.com/watch?v=の後にIDを付けてブラウザで開いてみましょう。
$ open https://www.youtube.com/watch?v=gk21tZU4oDs
今、俺の中で松浦真也が話題沸騰中。都元ダイスケは松浦真也さんを応援しています。