はじめに
- ヒヨッコクライマー兼エンジニアが楽をするためのTipsです
さぁ登りに行こうと思ったらセット日で閉店早い/お休みですなんてことにならないためのライフハックにお使いください - ここで紹介している範囲であれば無償で提供されているサービス内で実装が可能です
対象読者
- ボルダリングが好きな人 or Instagram投稿を何某かの理由で取得したい人
- ふんわりとしたWeb開発経験者
実装全体の流れ
実装の流れとしては
- InstagramAPIでクライミングジムの投稿を取得する
- 投稿の中身を精査してセットスケジュールを抜き出す
- Googleカレンダーに登録
他人のアカウントから投稿を抜き出す方法
他人のアカウントを指定して投稿内容を取得する方法は今日(2024/06/26)時点ではInstagramが提供しているIGビジネスディスカバリーを利用する方法のみ提供されています
IGビジネスディスカバリーAPIを利用するためには認証情報として以下の情報が必要です
- APIアクセストークン
- InstagramビジネスID
上記の認証情報を得るフローはdtn.jpさまの記事がとてもわかりやすいです
ここの記事を最後まで読み進めて作業するとAPIアクセストークンとビジネスIDが取得できますので、メモに保存しておきましょう
読み飛ばして該当の章だけ作業しようとしても取得できないので最初から順を追って設定して取得するようにしてください
APIの呼び出し方
APIの呼び出し時に指定するのは
- APIアクセストークン
- InstagramビジネスID
- 読み込み対象のアカウントのID
です
API呼び出しはGETリクエストですので、ターミナルからcurlしてもよし、ブラウザのURLに指定してもよし、お好きな方法で呼び出してください
呼び出し例
curl -i -X GET \
"https://graph.facebook.com/v20.0/{InstagramビジネスID}?fields=business_discovery.username({取得対象のInstagramID}){followers_count,media_count,media{id,caption}}&access_token={APIアクセストークン}"
呼び出し例ではフォロワー数、投稿数、投稿内容のうち投稿IDと本文を取得していますので
以下のような結果が得られます
結果
"business_discovery": {
"followers_count": フォロワー数,
"media_count": 投稿数,
"media": {
"data": [
{
"id": "投稿のID",
"caption": "投稿の本文"
},
{
"id": "投稿のID",
"caption": "投稿の本文"
},
{
"id": "投稿のID",
"caption": "投稿の本文"
}
],
"paging": {
"cursors": {
"after": "xxxxx"
}
}
},
"id": "対象アカウントのID"
}
"id": "InstagramビジネスID"
}
最後に
あとはこの情報を加工するだけなので今日はここまで
次回はGASからAPIを呼び出して投稿内容をカレンダーに登録するコードを紹介します
お疲れ様でした