平台名称 | 授权时间 | 操作 |
---|---|---|
No data |
使用 OAuth2.0 进行用户授权、信息获取以及消息发送
这篇文章将指导你如何使用我们的 OAuth2.0 API 进行用户授权、信息获取以及消息发送。我们的 OAuth2.0 服务器是由 Go 语言的 github.com/go-oauth2/oauth2/v4 包实现的标准的OAuth2.0协议。
用户授权
首先,你需要让用户授权你的应用。使用授权码模式,通过浏览器访问以下链接以获取授权码:
https://sct.icodef.com/api/v1/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REDIRECT_URI&scope=user
请将 YOUR_CLIENT_ID
和 YOUR_REDIRECT_URI
替换为你的应用的客户端 ID 和重定向 URI。当用户访问此链接时,系统会请求用户的授权。一旦用户确认授权,系统会将用户重定向到你提供的重定向 URI,并在 URI 中包含一个授权码(code
)。
获取访问令牌
通过获取到的授权码,你可以换取访问令牌,以下是一个示例:
POST /api/v1/oauth2/token HTTP/1.1
Host: sct.icodef.com
Content-Type: application/x-www-form-urlencoded
client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&code=CODE&grant_type=authorization_code&redirect_uri=YOUR_REDIRECT_URI
请将 YOUR_CLIENT_ID
、YOUR_CLIENT_SECRET
、CODE
和 YOUR_REDIRECT_URI
替换为你的应用的客户端 ID、客户端密钥、获取到的授权码和重定向 URI。
获取用户信息
获得访问令牌后,你可以使用该访问令牌调用我们的用户信息 API:
GET /api/v1/oauth2/user HTTP/1.1
Host: sct.icodef.com
Authorization: Bearer ACCESS_TOKEN
请将 ACCESS_TOKEN
替换为你获取到的访问令牌。除了放在header中,你也可以携带在请求中,例如:/api/v1/oauth2/user?access_token=ACCESS_TOKEN。
发送消息给用户
要发送消息给用户,你需要先使用客户端凭证模式获取 access_token
(请注意此 access_token 与上述通过授权码获取到的 access_token 不同),关于客户端凭证模式可以参考后面的获取客户端访问令牌,然后调用我们的推送消息 API:
POST /api/v1/oauth2/message/send HTTP/1.1
Host: sct.icodef.com
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{
"target": {
"user_ids": ["USER_ID1", "USER_ID2"]
},
"title": "TITLE",
"content": "CONTENT",
"parameters": {
"key1": "value1",
"key2": "value2"
}
}
请注意,在 target
字段中,只能指定其中一项(user_ids
,all_user
或者 user_tags
)。在上述示例中,我们选择了 user_ids
。
请将 ACCESS_TOKEN
替换为你获取到的访问令牌,USER_ID1
、USER_ID2
等替换为你要发送消息的用户 ID,TITLE
和 CONTENT
分别替换为你的消息标题和内容。在 parameters
字段中,你可以添加任何你需要的额外参数。
这些字段与Key&API中的字段,大多是相同的。
获取客户端访问令牌
如果你的应用需要以自己的身份进行操作,你可以使用客户端凭证模式获取 access_token,以下是一个示例:
POST /api/v1/oauth2/token HTTP/1.1
Host: sct.icodef.com
Content-Type: application/x-www-form-urlencoded
client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=client_credentials
请将 YOUR_CLIENT_ID
和 YOUR_CLIENT_SECRET
替换为你的应用的客户端 ID 和客户端密钥。
以上就是使用我们的 OAuth2.0 API 进行用户授权、信息获取以及消息发送的完整过程。希望这篇文章对你有所帮助!
OAuth2 API 文档
1. 获取用户授权
请求方式
GET
请求路径
/oauth2/authorize
请求参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
client_id | string | 是 | 应用的客户端 ID |
response_type | string | 是 | 响应类型,应为 "code" |
redirect_uri | string | 是 | 用户授权后重定向的 URI |
scope | string | 是 | 请求的权限范围,应为 "user" |
2. 获取访问令牌
请求方式
POST
请求路径
/oauth2/token
请求参数
对于授权码模式:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
client_id | string | 是 | 应用的客户端 ID |
client_secret | string | 是 | 应用的客户端密钥 |
code | string | 是 | 用户授权后获得的授权码 |
grant_type | string | 是 | 授权类型,应为 "authorization_code" |
redirect_uri | string | 是 | 用户授权后重定向的 URI |
对于客户端凭证模式:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
client_id | string | 是 | 应用的客户端 ID |
client_secret | string | 是 | 应用的客户端密钥 |
grant_type | string | 是 | 授权类型,应为 "client_credentials" |
3. 获取用户信息
请求方式
GET
请求路径
/oauth2/user
请求参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
access_token | string | 是 | 通过授权获取的访问令牌,放在请求头的 Authorization 字段中 |
4. 发送消息给用户
请求方式
POST
请求路径
/oauth2/message/send
请求参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
access_token | string | 是 | 通过授权获取的访问令牌,放在请求头的 Authorization 字段中 |
target | object | 是 | 消息的目标,可以是一个或多个用户ID,用户标签或所有用户,只能指定其中一项 |
title | string | 是 | 消息的标题 |
content | string | 是 | 消息的内容 |
parameters | object | 否 | 附加的消息参数 |