Instagramは埋め込めない

InstagramはWEBサイトに投稿を埋め込めない。特に凝った検索条件とかでなく自分の投稿リストをWEBサイトに掲載するのもできない。TwitterやFacebookはできるのに。
随分前、流行り始めた頃は出来たような気がするけど、もうずっと埋め込めなくなっている。TwitterやFacebookはできるのに。

APIを使えば似たことは出来る

TwitterやFacebookみたいにタグを貼り付ければOKな方法は無いけれど、APIを使えばJSONデータの取得が可能だ。
サーバ側でプログラムが動かせればAPIを呼び出して最新リストのJSONデータを取得してHTMLを作成するなんて処理を実行できる。
ただこの作業がややこしい。とにかくややこしい。そして少し時間が経つと方法が少し変わっていたりする。ややこしい。

2022年6月の時点でやれること

・Instagramの特定アカウントの投稿リストと個々の投稿情報をAPIから取得できる。
・ストーリーズやリールの情報は取得できない。
・単純な動画や複数枚の写真は取得できる。もちろん1枚の写真も。

・Facebookのアプリを作成してAPIを設定する。
・FacebookのアプリのテストユーザーとしてInstagramのアカウントを指定する。
・指定されたアカウントはInstagramの設定でアプリのテストユーザーを承認して連携する。

・つまりFacebookアカウントとInstagramアカウントはそれぞれログインできる必要はある。
 ただし直接関係している必要はない。
・最近の投稿を拾うだけならInstagramアカウントは個人用アカウントのままで構わない。
 プロアカウント、クリエイターアカウントである必要はない。

箇条書きしたのに結構あって、本当に色々とややこしい。
さらに
・APIで使うトークンは有効期限があり期限が切れたら取り直しになる。
 デフォルトの期限は1時間。
 デフォルトのトークンを60日間期限のトークンに変更できる。
・60日間期限のトークンも有効期限内に取得しなおすことで期限を延長できる。
という条件もある。

バッチで定期的に処理を実行する場合などは60日間期限のトークンを定期的に取得しなおして運用する必要がある。

ドキュメントはあるのよ

ここまでの情報がちゃんとFacebookのドキュメントとして存在している。ググったらまず最初にこれが出るのが正解だと思うけど、そもそも今はFacebookじゃなくてMetaだ。

Instagram基本表示API
https://developers.facebook.com/docs/instagram-basic-display-api

しかもちょいちょい内容が変わったりする。いやはや面倒くさい。1つ1つはたいしたことなくても手間が多い。

やり方はドキュメントの通り

利用を開始
https://developers.facebook.com/docs/instagram-basic-display-api/getting-started

ここにある通り。本当にこれに沿ってやれば出来る。ただやることが多い。

トークンを60日間期限のものに変更する処理と、60日間期限の取得しなおしだけは書かれていないので、それぞれリファレンスを参考に実施する。

アクセストークン
https://developers.facebook.com/docs/instagram-basic-display-api/reference/access_token
アクセストークンの更新
https://developers.facebook.com/docs/instagram-basic-display-api/reference/refresh_access_token

タグで良くない?という気持ちはずっとある

Instagramは戦略的にユーザーをスマホアプリに集中させようとしているのでタグで埋め込めなくしているのだと思うけれど、最近やっとパソコンのブラウザから投稿できるようにしたりと、境界線をちょいちょい調整している。条件付き制限付きでも良いから、ブログとか公式サイトで「Instagramもやってます。最新の投稿はこんな感じです。」というちょい見せ用の埋め込み、やってくれないかなあ。
本当にただただ面倒なんですよ。