OAUTH2应用方法
角色:服务提供商 A, 第三方服务商 B,用户C
1. 由B在A处注册,得到唯一的注册编号和验证码,即key & secret,以及C授权后重定向页面 redirect uri
2. 由C在A处注册用户,得到用户名和密码,即user id & password
3. 当C要授权给B时,由C在授权页面填写user id & password交A验证,验证成功由A返回code给B,由B向A提交 key,secret & code,验证通过得到授权authentation结果,即token。该过程称为access token.
经过以上3步完成oauth2授权过程,B可调用C在A处数据。
人人网,微博,豆瓣的第三方服务都才用上述验证技术。
http://klanders-it.diandian.com/
FOURSQUARE网络爬虫
刚写了一个Foursquare的网络爬虫用来扒Foursquare的用户数据,用的是Foursquare提供给的API,大致流程如下:
1. 在Foursquare里注册应用,随便取个名字,填好url 和 redirect url,由于我没有域名,所以随便填了个能访问的域名(填了果壳网。。一定是可以打开的网址。。)重点不是这两个url,而是得到用户授权后可以从redirect url的返回参数中得到code,所以要保证这两个url都能访问到。注册应用后得到key和secret,第二步有用。
2. 重点是oauth2的授权,在网上找了教程,大致流程是:
用key和secret作为oauth2验证服务器url的参数填入浏览器(形式是:
https://foursquare.com/oauth2/authenticate ?CLIENT_ID = YOUR_CLIENT_ID &RESPONSE_TYPE =代码 &redirect_uri = YOUR_REGISTERED_REDIRECT_URI,必须和申请应用里填的一样,当然可以随时改应用里url),在页面中授权(用的是自己的Foursquare账户),这样浏览器就重定向到uri,
HTTPS:// YOUR_REGISTERED_REDIRECT_URI /码= CODE
可以找到一个参数code=####(很长一串),拷贝下来,等下程序有用。不过这个code有时间限制,目前还不清楚有多长,总之是不长。
3. 再做一个请求
https://foursquare.com/oauth2/access_token ?CLIENT_ID = YOUR_CLIENT_ID &client_secret = YOUR_CLIENT_SECRET &grant_type = authorization_code &redirect_uri = YOUR_REGISTERED_REDIRECT_URI &代码= CODE得到令牌:
{access_token:ACCESS_TOKEN}
参考:
https://developer.foursquare.com/overview/auth