其获取instagram的数据有两种方式:
创新互联公司专注于青冈企业网站建设,自适应网站建设,成都做商城网站。青冈网站建设公司,为青冈等地区提供建站服务。全流程定制网站开发,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务1. 获取公共热点图片不需要用户认证,只需要将你申请的client_id发送到instagram即可。
2. 获取用户相关数据,需要通过instagram认证之后所颁发的access_token.
在第二种方式下,如何获取access_token呢?
1.首先,需要将用户引导到instagram的认证url地址上。
用户会被要求输入登陆口令,并选择是否授权权限给你的应用。
2.服务器会以下面两种方式的一种来将用户重定向到你的应用:
a. 服务器侧流程(推荐)。将用户重定向到你的某个页面,此时服务器会带着参数和一个code。通过POST刚才的code到access url来换取access_token.
b.隐式流程;此流程中没有code,instagram会将access_token以#送下来。此时服务器不需要任何access_token.
具体实现细节:
a. 服务器流程
第一步:将用户定向到instagram的认证url
https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code
其中scope可以获取到附加的权限。state是服务器指定的状态。
此时instagram会提供用户登陆界面。
第二步:接收instgram的重定向请求。
一旦用户认证成功,我们会携带一个code重定向到你的redirect_url。
http://your-redirect-uri?code=CODE
注意redirect_url需要和你申请接入应用时的redirect_url一致。
第三步:换取access_token
此种情况,需要使用POST方法。必须携带的参数有:
client_id
client_secret
grant_type: 此必须为authorization_code
redirect_url:重定向地址,同第二步
code: 收到的instagram的code
例如下面请求:
curl -F 'client_id=CLIENT-ID'
-F 'client_secret=CLIENT-SECRET'
-F 'grant_type=authorization_code'
-F 'redirect_uri=YOUR-REDIRECT-URI'
-F 'code=CODE' https://api.instagram.com/oauth/access_token
如果成功,就可以获取到access_token.
利用access_token就可以调用api来获取数据,例如获取到的数据如下
{
"access_token": "fb2e77d.47a0479900504cb3ab4a1f626d174d2d",
"user": {
"id": "1574083",
"username": "snoopdogg",
"full_name": "Snoop Dogg",
"profile_picture": "/upload/otherpic17/profile_1574083_75sq_1295469061.jpg"
}
}
b.客户端流程
假设你的应用根本就没有服务器侧,只是用js等写的一个小工具,此种情况下你很难通过发送secret和client_id来获取access_token,因为这两个值需要事先存储起来。那么该如何做:
第一步:
将你的用户定向到认证url
https://instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token
instagram将会提供登陆界面,并进行引导。
第二步:
一旦认证成功,instagram会发送access_token到重定向地址。
http://your-redirect-uri#access_token=ACCESS-TOKEN