instagram 的api研究

instagram目前好像在国内还不是用的很广泛。

  其获取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": "http://distillery.s3.amazonaws.com/profiles/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

 

 

转载于:https://www.cnblogs.com/bracken/archive/2013/03/10/2953249.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值