今回はInstagram Graph APIのビジネスディスカバリーについて、解説をします。
- 特定のアカウントの情報(フォロワー数・投稿数など)を取得したい
- 特定のアカウントの投稿情報(画像URLや投稿文など)を取得したい
といった方向けの記事となっています。
実際のコード付きで解説していきますので、ご確認ください。
このサイトではInstagramのAPIについて、網羅的に解説しています。
(ぜひブックマークなどして必要な時にみてください)
ページ | 概要 |
---|---|
InstagramAPIとは | 基本的な情報やできること・できないこと(まず見てほしい) |
APIセットアップ | Instagram APIのセットアップ方法(実装するなら必須) |
基本表示APIの実装方法 | 自分のアカウントの投稿やプロフィールの取得方法 |
ビジネスディスカバリーAPIの実装方法(当記事) | 他人のアカウントの投稿やプロフィールの取得方法 |
ハッシュタグ検索する実装方法 | 特定のハッシュタグの投稿情報の取得方法 |
自動投稿をする方法 | APIを使ってInstagram投稿をする方法 |
目次
Instagram API ビジネスディスカバリーについて
ビジネスディスカバリーは、エンドポイント/{ig-user-id}/business_discovery
のInstagram APIになります。
特定のアカウント(自分でも他人のアカウントでも)の、基本情報や投稿情報を取得するときに使うAPIです。
- 基本情報: フォロワー数、投稿数
- 投稿情報: 画像/動画URL、投稿文、投稿日時、アカウントID、投稿URL
上記の情報が取得できます。
ただし、取得するアカウントは、ビジネスアカウントかクリエイターアカウントである必要があります。
Instagram API ビジネスディスカバリーを実装してみる
Instagramの公式ドキュメントでもサンプルされている、BLUE BOTTLE COFFEEの公式アカウント情報を取得してみます。
(世界中の人からフォロワー数が見守られているブルーボトルコーヒー…)
環境はApps Scriptです。
const instaBusinessId = 'みなさんのビジネスアカウントID';
const accessToken = 'みなさんのアクセストークン';
const instaAccountName = 'bluebottle'; //取得したいアカウントID名
// ビジネスディスカバリーAPIを叩く関数
function businessDiscoveryApi() {
const url = `https://graph.facebook.com/v17.0/${instaBusinessId}?fields=business_discovery.username(${instaAccountName})%7Bfollowers_count,media_count,media.limit%2810%29%7Bcaption,media_url,permalink,timestamp,username,children%7Bmedia_url%7D%7D%7D&access_token=${accessToken}`;
const response = instagramApi(url,'GET','');
try {
if (response) {
const data = JSON.parse(response.getContentText());
console.log(data); //返り値①
console.log(data.business_discovery.media.data); //返り値②
return data;
} else {
console.error('Instagram APIのリクエストでエラーが発生しました。');
return null;
}
} catch (error) {
console.error('Instagram APIのレスポンスの解析中にエラーが発生しました:', error);
return null;
}
}
// APIを叩く関数
function instagramApi(url, method, payload) {
try {
const headers = {
'Authorization': 'Bearer ' + accessToken
};
const options = {
'method': method,
'headers': headers,
'payload': payload
};
console.log('url',url)
const response = UrlFetchApp.fetch(url, options);
return response;
} catch (error) {
console.error('Instagram APIのリクエスト中にエラーが発生しました:', error);
return null;
}
}
返答の内容(返り値)を確認
フォロワー数と投稿数の返り値(返り値①)は下記の通りです。(一部加工しています)
{ business_discovery: { followers_count: 443169, media_count: 2083,}}
フォロワー数(followers_count)443,169人、これまでの投稿数(media_count)が2,083個となります。
また投稿に関する情報(返り値②)も見てみましょう。(一部加工しています)
[ { caption: 'Bright, open spaces and all the time in the world to enjoy them—feels like summer at Blue Bottle.', media_url: 'https://scontent-atl3-1.cdninstagram.com/o1/v/t16/f1/m82/AB4EF048BBCB89900C51D5CCF886E7B9_video_dashinit.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5jbGlwcyJ9&_nc_ht=scontent-atl3-1.cdninstagram.com&_nc_cat=109&vs=670711068213474_3399101556&_nc_vs=HBksFQIYT2lnX3hwdl9yZWVsc19wZXJtYW5lbnRfcHJvZC9BQjRFRjA0OEJCQ0I4OTkwMEM1MUQ1Q0NGODg2RTdCOV92aWRlb19kYXNoaW5pdC5tcDQVAALIAQAVABgkR0xsWEpSWEM2ZC1hb1hBREFQYW5ZcWdMdFRzRWJxX0VBQUFGFQICyAEAKAAYABsBiAd1c2Vfb2lsATEVAAAm3Ln0o7vZ7D8VAigCQzMsF0AlPXCj1wo9GBJkYXNoX2Jhc2VsaW5lXzFfdjERAHUAAA%3D%3D&ccb=9-4&oh=00_AfB9ST01IrVmmUU4ezRlapnAn3X7kKC5XW_B1KDcHVySog&oe=64907560&_nc_sid=c07a80&_nc_rid=13241ae712', permalink: 'https://www.instagram.com/reel/CtjsaHxsEkX/', timestamp: '2023-06-16T16:20:59+0000', username: 'bluebottle', id: '18021368650575542' }, { caption: 'Summer is here, and with it come longer days, more picnics, and our seasonal treats to make it all that much sweeter. Here are some of our favorites.\n\nLemon Berry Swirl Pound Cake\n\nPistachio Orange Blossom Tea Cake\n\nRaspberry White Chocolate Sugar Cookie', media_url: 'https://scontent-atl3-2.cdninstagram.com/v/t51.29350-15/354114317_1204379466945646_7711090524341658924_n.jpg?_nc_cat=104&ccb=1-7&_nc_sid=8ae9d6&_nc_ohc=yaIVzuHvuT0AX8nILxq&_nc_ht=scontent-atl3-2.cdninstagram.com&edm=AL-3X8kEAAAA&oh=00_AfAzKXcOj72UZnojS1mudG0bgof19B3BhGXSM3cDrSewKA&oe=64936BD0', permalink: 'https://www.instagram.com/p/CterWErvXTZ/', timestamp: '2023-06-14T17:34:10+0000', username: 'bluebottle', children: { data: [Object] }, id: '17998020082778058' }]
上記は2投稿文の値です。
2個以上の画像や動画でできている投稿だと、画像・動画URLはchildren
に入っています。
実装時の解説ポイント!
デコードをやめた、肝心のURLは下記の通りです。
https://graph.facebook.com/v17.0/${instaBusinessId}?fields=business_discovery.username(bluebottle){followers_count,media_count,media.limit(10){caption,media_url,permalink,timestamp,username,children{media_url}}}
&access_token=${accessToken}
- instaBusinessId: みなさんのビジネスアカウントID
- username(bluebottle): ここに情報がほしいアカウントIDを入れます
- limit(10): 投稿情報がほしい数を指定できます
- accessToken: みなさんのアクセストークン
フォロワー数(followers_count)、投稿数(media_count)は、情報がほしいアカウントIDの後に記載します。
投稿情報については、media.limit(ほしい数)の後に、記載をしていってください。
サンプルでは基本全てのパラメーターを取得できるよう記載しています。
他にもほしい情報が取れないか?という方は、公式ドキュメントの「フィールド」という部分を確認ください。
特定のアカウントの情報をビジネスディスカバリーAPIで取得!
自分のアカウントでも、他人のアカウントでもビジネスディスカバリーAPIで、基本情報・投稿情報がゲットできます。
ただビジネスアカウントか、クリエイターアカウントでないと情報が取れないことだけは注意が必要です。
アカウント分析や、特定のアカウントの投稿を取りたい際は、ぜひ使ってみてください。
旅アトリーチでお客様の投稿を掲載!
弊社サービス、旅アトリーチを使うと、お客様のSNS投稿を簡単・安全に掲載できます。
- お客様のSNS投稿をHPで掲載したい
- お客様のSNS投稿を増やしたい
- 公式HPからの直予約率を上げたい
といった施設様、HP制作会社様などは、ぜひ一度ご連絡をください!
コメントを残す