Instagram Basic Display API を使ってみた感想

Instagram Basic Display API を使ってみた感想

昨日、Instagramに新しいAPI、「Instagram Basic Display API 」が登場していたのでものは試しとAPIを使用して見ました。

Instagram Basic Display API とは

Instagram基本表示APIはHTTPベースのAPIです。アプリはこれを使用して、Instagramユーザーのプロフィール、画像、動画、アルバムを取得できます。

facebook for developers

つまり、Instagram Graph APIの簡易版だと思っていただければ大丈夫です。

access_tokenの発行にハマった

まずはじめに私は、access_tokenの発行に苦戦してしまいました。

認証の流れとしては、ユーザーがインスタグラムにログインした状態で、アプリケーションの認証をしてもらい、リダイレクトされたURIのクエリ情報の認証用コードを用いて、今度は、アプリ側からトークンの認証を行ってアクセストークンを発行するのですが、なかなか上手く認証用コードを認証させることが出来ませんでした。

Stack Overflowでも、同様の質問があったのですがその方法でも行かず、とあるサイトで認証用コードの最後の#_を削除すると上手くいくよーという情報のおかげで何とか認証させることができました。

補足:#以下はクエリではなく、アンカーになります。

主要な3つのAPI

公式のスタートガイド通りに登録を行い、access_tokenの発行することができれば、Instagram Basic Display APIのAPIを利用することができるようになります。

Instagram Basic Display APIには大きく分けて3つのAPIがあります。

1つ目は、ユーザー情報を取得できるAPI、2つ目は、投稿一覧を取得できるAPI、3つ目は、投稿の詳細情報を取得できるAPIです。

しかし、これらの全てのAPIを使用しても得られる情報は、ユーザーID、ユーザー名、キャプション、メディア(画像・動画)のURL、投稿日時のみです。どのAPIもとても貧弱です。

投稿一覧を取得できるAPIから投稿ページのリンク取得できないため、インスタグラムのフィードを作るのにもあまり向いていません。

トークンの有効期限が1時間のみ

前述したとおり、このAPIを利用するには、認証用コードとアクセストークンの2種類のトークンを用いて利用することができるのですがどちらも1時間しか有効期限がありません。

認証用コードは、セキュリティ上、有効期限が短く設定されているのはいいのですが、アクセストークンが1時間しかないと認証してもらったその瞬間ぐらいしかAPIを利用することができません。

アクセストークンが1時間しか利用できない問題は非常に大きく、サイトの埋め込みを作ることはできません。1時間起きに手動で毎回認証する訳にも行きませんから…

となると、認証した時にガバっと画像データを取得するぐらいしかやることはなくなって来てしまいます…

まとめ

Instagram Basic Display API は、現在の仕様ですとあまりおすすめできません。

取得できる情報がかなり絞らていますし、トークンの有効期限も短すぎます。Instagram Basic Display APIを使って実装できる機能やアプリケーションはかなり絞られます。

素直にInstagram Graph APIを使用するか、あまりオススメできませんが、インスタグラムをスクレイピングできるライブラリを使用する方が断然良いでしょう。