InstagramのAPIの使い方と制限。CData Instagram Excel-addinで使うところまで
最近ちまちまと投稿しているSNS周りのAPIを利用するにあたっての設定方法。
今回はInstagramです。
私も一応ご多分に漏れず、Instagramを使っていますが、主にFacebookとTwitterへ一括投稿するためのハブのような使い方をしていて、あまり有効活用できていない気がします。
まあ、それはそれとして、Instagramの隆盛はとどまるところを知らない感じです。
APIを使って、色々とビジネスに活用したいという話も尽きませんので、今回はそのAPIを使うための諸々を書き留めておきたいと思います。
Instagram APIを使う前の、そもそもの話
InstagramのAPIって、初期状態だと実はTwitterほど自由にデータの取得ができるAPIじゃなかったりします。(Twitterも最大限活用するには、有料のAPIプランが必要ですが)
初期状態ではSandboxという制限状態に設定されていて、例えば、データの取得件数が20件までだったり、Sandboxの対象としたユーザー以外の情報は取得できなかったりと、実用性はかなり薄くなってしまいます。
なので、実際にビジネスライクにデータを取得して分析とかワークフローとかを組みたい場合は、利用申請というのが必要になるので、注意しましょう。
その申請がInstagram側で審査・承認されて、はじめてInstagramのAPIをフルに活用できるようになります。
審査基準はよくわからないらしいですが、簡単だよー、ぜんぜん通らないよー、といろいろな声が聞かれます。
そのあたりは色々と参考になるBlogがたくさんあるので、以下の記事などを参考にしてみてください。
socialmedia-marketing.argyle.jp
APIを使える状態にするまで。ClientIdとClientSecretの取得方法
それでは、ClientIdとClientSecretを取得してAPIを使える状態まで持っていきたいと思います。
設定は他のAPIと同様にアプリケーション登録をして、OAuth認証用のClientIdとClientSecretを取得する感じです。
まずは下記デベロッパーサイトのURLにアクセスして、対象のアカウントでログインします。
Instagram Developer Documentation
続いて、APIを利用するためのアプリケーションを登録します。
左上の[Manage Clients]をクリックし
[Register a New Client]をクリックします。
新しくアプリケーションを登録する画面に移るので、Application Name等を適宜入力します。
APIを使うにあたって、注意したいのは[Valid redirect URIs]ですね。
私は後々ローカルのアプリケーションから利用するのでそれ用のポートを指定した[http://127.0.0.1:33333]を入力しました。
これでアプリケーションの登録は完了です。
登録したアプリケーションの[MANAGE]をクリックすると
Client IDとClient Secretが確認できます。
ちなみにPermissionsをクリックすると利用できるScopeの一覧が表示されますが、Sandbox modeではどれも利用できません。
[Start submission]から利用申請を実施できますので、興味のある方はどうぞ。
CData Instagram Excel-addonを使ってAPIを叩いてみた
というわけで実際に、取得したClientIdとClientSecretを使ってAPI経由でデータを取得してみたいと思います。
プログラムでもいいのですが、今回はお手軽にAPI経由でExcelにデータをロードできる、CData Excel Add-In for Instagramを使っています。
以下から試用版がダウンロードできるので、どうぞー。
インストール後、Excelを立ち上げて[CDATA]タブの[取得元Instagram]をクリックします。
接続情報を入力するウィンドウが開くので[Callback URL][OAuth Client Id][OAuth Client Secret]をそれぞれ先程Instagram Developerの内容で入力します。
[OK]をクリックすると、Instagramの認証画面が表示されるので、対象のアカウントでログインを実施し[Authorize]をクリックします。
接続が成功すれば、データを取得するためのクエリを書く画面に移動します。
ちなみに以下のようなエラーが出た場合は、たぶんClient Secretが古い状態です。
以下の画面で[RESET SECRET]を実行して、Client Secretを更新してみてください。
今回は投稿した情報の一覧を見てみたいので[Media]テーブルを選択してみました。
[OK]をクリック後、以下のように直近の投稿一覧が表示されます。
ちなみに、前述の通りSandboxモードでは直近の20件までのデータしか取得することができません。
おわりに
やっぱり、データが直近20件しか取得できないのは厳しいですね。
一度APIでできることをSandboxモードで試した上で、申請をして色々と使える状態に持っていきたいところです。