Instagram APIを利用したアプリ開発の注意点

HTTP API を利用すれば、許される範囲内で基本的に何でも好きなことができるイメージがあるのですが、Instagram API はなかなか制限が厳しいようですね。

スポンサーリンク

API による投稿

Instagram で最も利用条件が厳しい (と思っている) のは、写真や動画の投稿です。そもそも投稿は Instagram のスマホアプリでしかできない仕様で、公式の Web サイトですらその機能はありません。

2017 年 2 月現在、Public API では公開されていません。ごくごく限られたモバイルアプリケーションにだけ許可を出しているようです。

Twitter などと比べたときの投稿の質の高さは、きっとこの制限によって守られているんですね。

ちなみに、ネット上には若干上がってたりするんですが、投稿へのコメントを POST する API を使っているようで本当の意味での投稿ではないらしく、試してません。

API 利用の許可と審査

Sandboxモード

Instagram API はデベロッパーアカウントを取得してアプリを登録するで利用できるようになりますが、アプリには二つのモードがあり、どちらのモードであるかによってできることが変わります。

デフォルトでは Sandbox モードで、すべての API を利用できます。しかし、利用できるのは開発者自身だけです。Sandbox アプリに他の開発者アカウントを招待して利用者を増やすことはできますが、記憶では最大でも 10 人です。

また、アプリに登録された開発者アカウント以外のアカウントに関する情報は取得できないことにも注意が必要です。

つまり、このままでは多くの人に使ってもらうアプリは作れません。

Liveモード

開発者アカウントだけでなく、Instagram ユーザーなら誰でも利用できるようにするには、Live モードにしなければなりません。Sandbox モードに比べるとレートリミットの上限にかなり高く、開発者アカウント以外のアカウントに関する情報も取得できるようになります。

しかし、Sandbox モードでは自由に利用できていた API の利用に審査の通過という条件が加わります。

Instagram による審査

2016 年にアプリ審査が必要になり、しかも API の種類ごとに申請が要るという割とめんどくさい仕様になりました。

種類ごとに、というのは例えば、フォローリストを取得する API は follow_list カテゴリー、過去の投稿を取得する API は public_content カテゴリーに属しています。API の審査と許可はカテゴリーごとに行われるので、フォローリストと過去の投稿を取得したい場合は二つのカテゴリーで別々に審査を通過しなければなりません。

審査は厳しいとの噂ですが、個人的にはそんなに…。私の場合、一回目は落ちましたが、その理由は申請理由に間違ったものを選んだから、という単純なものでした。

よく起こる認証時エラー

Liveモードになれば、アプリを様々なアカウントで利用できるようになります。ここで必要になってくるのが、認証です。認証にはクライアントサイドとサーバサイドの二種類が用意されていますが、セキュリティ的にサーバサイドな認証を選んだほうがいいです。

ただ、以下のような原因不明のエラーが出ることがあります。

文章を読めば意味はわかりますが、なぜこのエラーが出ているのかは不明。しかも、同じアカウントでも出るときと出ないときがあったり、デバイス変えると治ったり…

OAuth に使う Code は記憶させてないので、同じものを使い回していることはないはずなんですが、まあよくわかりません。

Stack Overflow でも同じような質問をいくつか見かけますが、解決には至っていないようです。

最後に

Developer Document がちょっと不親切で説明不足だったりして泣けるんで、使うときは頑張ってください。

スポンサーリンク

コメント・質問する