前回、Instagram Graph API を利用するための準備をしました。
ここまでで、とりあえず Instagram Graph API が使用できている状態とします。
今回やりたいことは、Instagram Graph API の中の「Hashtag Search API」を使用して、任意のハッシュタグ付けされた投稿画像を検索するということです。
⚠ ちゃんと調べきれていないですが、もしかしたら検索対象はビジネスアカウントの投稿のみかもしれません。
わかり次第、記事を更新します。
↑ということはなかったです。普通にビジネスアカウント以外でも検索できるようです。
今回は、公式のドキュメントを参考にしながら、「coke」ハッシュタグの画像を最新投稿順または高評価順に検索するというのをチュートリアル的にやっていきます。
一連の流れ
大まかに以下の2ステップで実現できます。
- ハッシュタグ名をキーにして、Instagram Graph 上で管理されているハッシュタグIDを取得する
- ハッシュタグIDをキーにして、最新投稿順またはこう評価順に検索をかける
上記で画像のURLのコレクションが取得できるので、そのURLにアクセスすることで画像を取得できます。
思ったよりも結構簡単でした😀👍
①ハッシュタグ名をキーにして、Instagram Graph 上で管理されているハッシュタグIDを取得する
今回はチュートリアルとして「coke」のハッシュタグで検索します。
以下のように API を実行します。
https://graph.facebook.com/ig_hashtag_search?user_id=XXXXXXX&q=coke&access_token=YYYYYYY
- XXXXXXX はインスタのビジネスアカウントID
- YYYYYYY はアクセストークン
- 「coke」の部分を任意の文字列に変えることで、任意のハッシュタグを指定することが可能
これを実行することで、以下のような感じでjsonを取得できます。
{
"data": [
{
"id": "17841593698074073"
}
]
}
この「17841593698074073」というのがハッシュタグ coke を示すハッシュタグIDです。
参考元は以下の公式ドキュメントです。
②ハッシュタグIDをキーにして、最新投稿順またはこう評価順に検索をかける
以下のように API を実行します。
最新投稿順で取得する場合
https://graph.facebook.com/17841593698074073/recent_media?user_id=XXXXXXX&fields=id,media_type,media_url,permalink&access_token=YYYYYYY
高評価順で取得する場合
https://graph.facebook.com/17841593698074073/top_media?user_id=XXXXXXX&fields=id,media_type,media_url,permalink&access_token=YYYYYYY
- XXXXXXX はインスタのビジネスアカウントID
- YYYYYYY はアクセストークン
- 17841593698074073 はハッシュタグID
これを実行することで、以下のような感じでjsonを取得できます。
{
"data": [
{
"id": "XXXXXXXX",
"media_type": "IMAGE",
"media_url": "画像へのURL",
"permalink": "投稿へのパーマリンク"
},
・
・
・
(リスト)
・
・
・
],
"paging": { 省略 }
}
画像へのURLが含まれたリストが取得できます。
例えば今回の「coke」の場合、最も高評価の画像として、以下のパーマリンクとして以下が取得できました。
参考元は以下の公式ドキュメントです。
- https://developers.facebook.com/docs/instagram-api/guides/hashtag-search#
- https://developers.facebook.com/docs/instagram-api/reference/hashtag/recent-media
- https://developers.facebook.com/docs/instagram-api/reference/hashtag/top-media
まとめ
たったこれだけのステップでハッシュタグの画像URLをコレクションで取得できるのは便利ですね。
問題はこの Instagram Graph API を使用できるまでの準備ですが、ここさえ乗り越えればかなりサクっといろんなことが出来そうです。
補足
ハッシュタグは日本語も可能です。
例えば「東京タワー」とした場合は、①のAPIは以下のようになります。
https://graph.facebook.com/ig_hashtag_search?user_id=XXXXXXX&q=東京タワー&access_token=YYYYYYY
コメント