開発入門 > Unity > UnityでC#を用いてInstagram APIを利用するメモ

UnityでC#を用いてInstagram APIを利用するメモ

Instagram API利用時のメモです。
今回は、Instagramの任意のユーザーの新着を取得するのに必要な手順で、それ以外の利用方法は今回のメモの対象外です。

まず、事前知識として知っておくと理解が早い情報

  • 一般公開されている写真の情報を取得するだけでもAPIを用いる必要がある。
  • APIは審査基準が厳しい
  • 審査通るまではSANDBOXモードで動作し、10ユーザーの新着20件までの情報しか取得できない
  • SANDBOXモードで取得するユーザーは個別に許可をもらう必要がある
  • APIの利用はURL ENDPOINTにアクセスすることでJSON形式でデータを取得することができるREST APIなので実装は難しくない
  • usernameとuseridはことなり、APIで利用するのはuserid。(APIを用いてusernameからuseridを取得する必要あり。ここを理解していなくてハマった。)
  • APIの利用にはアクセストークンが必要。これは、管理画面で発行されるClient IDともClient Secretとも違い、Client IDを用いて別途取得する必要がある。(セッションごとに必要なものではなく、一度取得すればリセットしないかぎり使える)
  • 2015年10月17日からAPIの審査が必要になったらしい。なので、この日付より古いネットの情報は注意が必要

事前準備

  1. Developer登録
    https://www.instagram.com/developer/
    から開発者情報を入力
  2. Applicationの登録
    Detailsタブ
    Valid redirect URIs:
    アクセストークンを取得するのに利用。今回の用途では実在するURLであればひとまずなんでも良いSecurityタブ
    Disable implicit OAuth:チェックを外す
    Enforce signed requests:チェックを外す
  3. ApplicationごとのClient IDが発行されるのでメモします
  4. Sandboxユーザーの追加
    Manage Clients – EDIT – Sandbox
    で写真を取得したいユーザーを追加します。
    追加したユーザーには個別に承認を貰う必要があります。
  5. アクセストークンの取得
    APIを利用する際に必要なAccess Tokenを取得します。
    ・Application登録時に設定したRedirect URL
    ・取得したClient ID
    を下記URLに含めてブラウザからアクセスします。

    insta1
    認証を求められるのでAuthorizeをクリック
    ブラウザのページがリダイレクトで指定したサイトにジャンプします。
    insta2
    その際、ブラウザのアドレスバーのURLに表示されるaccess_token以降の文字列がアクセストークンになります。
  6. 情報を取得したいユーザーのuseridを取得
    繰り返しになりますが、SANDBOXモードでは写真や情報を取得するユーザーには個別に許可を貰う必要があります。またAPIではusernameではなくuseridを利用する必要があるため、対象ユーザーのuseridを取得します。
    usernameとはhttps://www.instagram.com/kyarykyary0129/ のkyarykyary0129の部分です。
    下記URLでUSERNAMEとACCESS_TOKENを指定してブラウザでアクセス

    ブラウザにUSERNAMEで指定したユーザーの情報が表示されます。(見やすく整形しています)

    上記の場合、useridは4159593になります。

 

写真投稿の取得

API ENDPOINTのドキュメントはこちら

ここまでの事前準備で取得した
・アクセストークン
・取得対象ユーザーのuserid
をAPIで利用して情報をとります

指定ユーザーの新着情報取得

 

Instagramの投稿写真を取得するためのコードを作成したので公開しておきます。写真一覧取るだけのシンプルなものです。今後これをベースに機能追加予定。

MiniJSON及びJsonNodeをダウンロードしておくこと。

 

 

カテゴリー: Unity

コメントを残す

メールアドレスが公開されることはありません。