Instagram如何获得access_token

Instagram how to get access_token

本文关键字:token access 何获得 Instagram      更新时间:2023-09-26

我是Instagram应用程序开发的新手,并且已经为这个问题苦苦挣扎了一段时间。基本上,这是它的样子:

我正在将用户重定向到授权网址,如下所示:

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

然后,当用户登录时,页面将重新加载,并在回调网址(' ?code=returned_by_instagram_code '(的末尾添加Instagram代码。

这就是我卡住的地方。

页面重新加载后,我如何从 url 获取返回的代码(它存储在 cookie 或会话中,以便我可以以某种方式访问它,或者我应该通过回调 url 和附加到它的一些函数以某种方式获取它(?

接下来,当我获得代码时,我可以向Instagram发送(POST(请求以获取access_token吗?


提前感谢您的任何帮助。

附言。我正在使用没有任何框架(例如jquery(的javascript,这就是我正在寻找的响应。

来自有关仅使用客户端访问令牌生成 (http://instagram.com/developer/authentication/( 的文档,您需要更改的关键是 URL 中的响应代码为:&response_type=令牌

客户端(隐式(身份验证如果你正在构建一个没有服务器组件的应用(例如,一个纯粹的 javascript 应用(,你会注意到,如果不同时寄送客户端密码,就不可能完成上述第三步来接收access_token。切勿将客户端机密传送到无法控制的设备上。那你怎么得到一个access_token?负责OAuth 2.0规范的聪明人已经预料到这个问题,并创建了隐式身份验证流程。

第一步:将您的用户定向到我们的授权 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,您就可以开始了。如果用户选择不授权您的应用程序,您将收到与显式流中相同的错误响应

一个简单的例子,在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);
}

}(;

igCallbackUrl 将重定向到一个页面。该代码可以作为该请求的 GET 参数进行访问。

类似于 php 中的 GET['code']。如果您提供有关服务器端框架的更多详细信息,那么回答您的问题会很有帮助。

如果你在Javascript上使用,你可以使用 github.com/Instagram/instagram-javascript-sdk。