简介
街旁开放API使用OAuth 2.0作为第三方应用授权和验证的方式。与OAuth 1.0相比,您实现基于OAuth 2.0的应用会更简单。
验证授权方式
街旁网目前支持两种验证授权方式:从服务器端调用(叫做Authorization Code)和从客户端调用(叫做Implicit Grant)。根据您的应用类型和需求,您可以选择一种合适的验证授权方式。
方式一:从服务器端调用(Authorization Code)
此授权方式适用于有服务器的应用,例如:Web站点、有服务器的客户端应用等。
第一步:获取Authorization Code
要获取Authorization Code,应用需要先将用户浏览器重定向到授权页面:
https://jiepang.com/oauth/authorize?response_type=code&client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&state=ABCDEFG
- response_type
- client_id
- redirect_uri
- state
- 非必需参数。您的应用可将此参数的值设置为任意的字符串,在第二步会原样返回此字符串。可用于保存用户状态等信息。
当用户授权了您的应用后,页面会回调到以下URL:
YOUR_URL?code=XXXXYYYYZZZZ&state=ABCDEFG
- code
- 为Authorization Code,有效期为5分钟,并且只能使用一次,再次使用将无效。
- state
如果发生错误或用户拒绝授权,会跳转到以下URL:
YOUR_URL?error=ERROR_TYPE&error_description=ERROR_DESCRIPTION&state=ABCDEFG
- error:
- 错误类型,可能有以下值:
- invalid_request
- unauthorized_client
- access_denied
- unsupported_response_type
- invalid_scope
- server_error
- temporarily_unavailable
- error_description
- state
第二步:获取Access Token
要获取Access Token,需要在服务器端向以下地址发送请求:
https://jiepang.com/oauth/token?grant_type=authorization_code&code=XXXYYYZZZ&client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&redirect_uri=YOUR_URL
- grant_type
- 必需参数。此处的值必须为“authorization_code”。
- code
- 必需参数。值为上一步返回的Authorization Code。
- client_id
- client_secret
- 必需参数。为注册应用时获得的App Secret。
- redirect_uri
- 必需参数。必须和第一步里的redirect_uri参数一致。
若参数无误,服务器将返回以下JSON数据:
{
"access_token": "AAABBBCCCDDD"
}
如果发生错误,会返回以下JSON数据:
{
"error": "ERROR_TYPE",
"error_description": "ERROR_DESCRIPTION"
}
- error
- 错误类型,可能有以下值:
- invalid_request
- invalid_client
- invalid_grant
- unauthorized_client
- unsupported_grant_type
- invalid_scope
- error_description
方式二: 从客户端调用(Implicit Grant)
此授权方式适用于无服务器或不能在服务器保存信息的应用,例如:桌面程序、浏览器插件、纯JavaScript应用等。
要获取Access Token,应用需要将用户浏览器重定向到授权页面:
https://jiepang.com/oauth/authorize?response_type=token&client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&state=ABCDEFG
- response_type
- client_id
- redirect_uri
- state
- 非必需参数。可设置为任意的字符串,在第二步会原样返回此字符串。可用于保存用户状态等信息。
当用户授权了您的应用后,会跳转到以下URL:
YOUR_URL#access_token=AAABBBCCCDDD&state=ABCDEFG
如果发生错误,会跳转到以下URL:
YOUR_URL#error=ERROR_TYPE&error_description=ERROR_DESCRIPTION&state=ABCDEFG
- error
- 错误类型,可能有以下值:
- invalid_request
- invalid_client
- access_denied
- unsupported_response_type
- invalid_scope
- server_error
- temporarily_unavailable
- error_description
- state
调用街旁API
在获取到Access Token后,您的应用就能够已与之对应的用户身份来调用街旁API了。在调用街旁API时,需要在每个API请求中加入access_token参数。例如要获取登录用户的信息,则URL为:
http://api.jiepang.com/v1/account/verify_credentials?access_token=AAABBBCCCDDD
代码实例