__STYLES__
授权记录
在这里可以管理给三方应用的授权信息,给三方应用授权后,三方应用可以随时进行消息推送,您也可以随时取消授权
平台名称授权时间操作
No data
使用 OAuth2.0 进行用户授权、信息获取以及消息发送

使用 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_IDYOUR_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_IDYOUR_CLIENT_SECRETCODEYOUR_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_idsall_user 或者 user_tags)。在上述示例中,我们选择了 user_ids

请将 ACCESS_TOKEN 替换为你获取到的访问令牌,USER_ID1USER_ID2 等替换为你要发送消息的用户 ID,TITLECONTENT 分别替换为你的消息标题和内容。在 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_IDYOUR_CLIENT_SECRET 替换为你的应用的客户端 ID 和客户端密钥。

以上就是使用我们的 OAuth2.0 API 进行用户授权、信息获取以及消息发送的完整过程。希望这篇文章对你有所帮助!

OAuth2 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 附加的消息参数