OAuth 授权
机器人只能访问有限的用户信息。若要获取 Mixin Messenger 用户的资料、资产等数据,需要征得用户授权。
发起授权
GET https://www.mixin.one/oauth/authorize?client_id=CLIENT_ID&scope=PROFILE:READ+ASSETS:READ&response_type=code&return_to=
state
参数可选,结合 PKCE 可提升安全性,详情请参考 https://www.oauth.com/oauth2-servers/pkce/authorization-request。
获取访问令牌
用户授权成功后,页面会跳转到应用配置的 OAuth 回调地址,并携带授权码。开发者随后可使用该授权码获取签名所需的其他信息。
POST /oauth/token
获取 OAuth 签名所需的参数。
API 端点 URL
https://api.mixin.one/oauth/token
请求体
{
"client_id": "用户授权给定的 client_id",
"code": "回调中返回的授权码",
"client_secret": "应用的 app secret",
"code_verifier": "",
"ed25519": "客户端生成的随机 ed25519 公钥,私钥需本地保存用于签名"
}
请求示例
curl -i -X POST -H "Content-Type: application/json" https://api.mixin.one/oauth/token --data PAYLOAD
Response
{
"ed25519": "服务器返回的随机 ed25519 公钥",
"authorization_id": "本次授权的 ID",
"scope": "用户授予的权限列表,例如 'PROFILE:READ ASSETS:READ'"
}
撤销授权
用户可在 Mixin Messenger 设置中撤销授权,或授权将在一年后过期。开发者需要妥善处理过期的令牌。