3

私はInstagramアプリの開発に不慣れで、しばらくの間この問題に苦しんでいます. 基本的には、次のようになります。

次のような認証 URL にユーザーをリダイレクトしています。

window.open("https://api.instagram.com/oauth/authorize/?client_id=" + igClientId + "&redirect_uri=" + igCallbackUrl + "&response_type=code", "_blank");

次に、ユーザーがログインすると、ページがリロードされ、コールバック URL (' ') の末尾に Instagram CODE が追加されます?code=returned_by_instagram_code

そして、これは私が立ち往生した場所です。

ページのリロード後に URL から返されたコードを取得するにはどうすればよいですか (Cookie またはセッションに保存されるため、何らかの方法でアクセスできます。または、コールバック URL とそれに関連付けられた関数を介して何らかの方法で取得する必要があります)。

POST次に、コードを取得したら、Instagram に( ) リクエストを送信するにはどうすればよいaccess_tokenですか?


よろしくお願いします。

PS。フレームワーク(jqueryなど)なしでjavascriptを使用していますが、これが私が探している応答です。

4

3 に答える 3

2

クライアント側アクセス トークン生成のみの使用に関するドキュメント ( http://instagram.com/developer/authentication/ ) から、変更する必要がある重要なことは、URL の応答コードを次のようにすることです: &response_type= token

クライアント側 (暗黙的) 認証 サーバー コンポーネントを持たないアプリ (純粋な JavaScript アプリなど) を構築している場合、上記の手順 3 を完了して access_token を受け取ることは不可能であることに気付くでしょう。クライアントシークレットを発送します。管理していないデバイスにクライアント シークレットを送信しないでください。では、access_token を取得するにはどうすればよいでしょうか。OAuth 2.0 仕様を担当する賢明な人々は、この問題を予期して暗黙の認証フローを作成しました。

ステップ 1: ユーザーを認証 URL に誘導する

https://instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECTURI&response_type=token

この時点で、ユーザーにログイン画面を表示してから、Instagram データへのアプリのアクセスを承認する確認画面を表示します。明示的なフローとは異なり、ここでの応答タイプは「トークン」であることに注意してください。

ステップ 2: URL フラグメントを介して access_token を受け取る

ユーザーがアプリケーションを認証して承認すると、url フラグメントに access_token を使用して、ユーザーを redirect_uri にリダイレクトします。次のようになります。

http://your-redirect-uri#access_token=270740070.f59def8.d58713f2c81741c5b3686109306f98b4

URL フラグメントから access_token を取得するだけで、準備完了です。ユーザーがアプリケーションを承認しないことを選択した場合、明示的なフローと同じエラー レスポンスが返されます。

于 2013-02-25T22:39:06.100 に答える
1

簡単な例として、api.instagran ( https://instagram.com/developer/clients/register/ ) の登録アプリでトークンを取得します。次の前にログインしてください。

var accessToken = '5e6e329062f047dd95ggj6c9df202c828';

$.ajax({
 url: 'https://api.instagram.com/v1/media/popular',
 dataType: 'jsonp',
 type: 'GET',
 data: {client_id: accessToken},
 success: function(data){
    console.log(data);
    for(x in data.data){
      $('ul').append('<li><img  src="'+data.data[x].images.low_resolution.url+'"></li>');  
    }
},
error: function(data){
    console.log(data);
}

});

于 2015-06-04T17:52:27.357 に答える
0

igCallbackUrl はページにリダイレクトします。コードは、そのリクエストに対する GET パラメータとしてアクセスできます。

php の GET['code'] のようなもの。サーバー側のフレームワークについて詳しく教えていただければ、質問にお答えいただけると助かります。

Javascript を使用している場合は、github.com/Instagram/instagram-javascript-sdk を使用できます。

于 2012-05-11T13:22:12.577 に答える