newteo / team-blog-repo

42 stars 3 forks source link

Instagram API #27

Open wardenger opened 8 years ago

wardenger commented 8 years ago

准备

  1. 要使用Instagram API,首先你得注册一个Instagram帐号,然后进入到 instagram 开发者页面。

  2. 创建一个项目,创建成功之后就能通过操作面板(Manage Clietns)获取到你的client_id等一些其他的配置属性。

获取token

Instagram使用OAuth 2.0 协议进行授权验证,需要注意的一点是只接受https请求。在进行授权验证时候,官方提供两种方式: Server-side (Explicit) Flow(这种是官方推荐) 和 Client-Side (Implicit) Authenticatio。 因为考虑到用Client-Side (Implicit) Authenticatio比较简单,所以我选择了这种,下面就讲一讲这种方式。

https://api.instagram.com/oauth/authorize/?client_id=ba3f36de16dd4807ad5c30c60f6b8d2c&redirect_uri=http://localhost&response_type=token&scope=public_content+follower_list+likes+relationships+comments

简单解释一下上面的请求,client_id是你在Instagram创建项目后自动给你生成的,redirect_uri是你自己设置的网址,scope字段规定了你要获取用户的那些权限。

权限列表

权限 描述
basic to read a user’s profile info and media
public_content to read any public profile info and media on a user’s behalf
follower_list to read the list of followers and followed-by users
comments to post and delete comments on a user’s behalf
relationships to follow and unfollow accounts on a user’s behalf
likes to like and unlike media on a user’s behalf

如果用户已经登录了Instagram,在发送这个请求后会给用户弹出一个是否确认给你应用程序授权的窗口,如果此时用户没有登录,那么Instagram会给用户一个Instagram登陆窗口,引导用户登陆,然后显示是否授权给这个应用(通过client_id)的窗口。这样,你就能在url上获取到用户的token啦!

注意事项

所有的API请求都必须带有token

注意在获取token时scope字段的设置,这关乎你能获取用户的哪些权限

最后,也是最重要的一点。官方基于安全考虑,你的项目现在处于一种叫做沙盒模式的状态中,在沙盒模式中,你不能获取到其他未接受你邀请的用户信息,要模拟真实API环境,你必须邀请你的小伙伴接受测试你的应用程序,而且最多只能邀请9人。

添加小伙伴加入测试你项目的操作步骤:

  1. 点击 Manage Clients 按钮
  2. 点击 MANAGE 按钮
  3. 点击 Sandbox 标签

API 结构

官方文档地址

joephon commented 8 years ago

nice~