curl --request GET 'https://api.voicecheap.ai/oauth/userinfo' \
--header "Authorization: Bearer $VOICECHEAP_ACCESS_TOKEN"
const input = {};
const response = await fetch('https://api.voicecheap.ai/oauth/userinfo', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.VOICECHEAP_ACCESS_TOKEN}`,
},
redirect: 'manual',
});
console.log(response.status, await response.text());
import os
import requests
response = requests.request(
"GET",
"https://api.voicecheap.ai/oauth/userinfo",
headers={"Authorization":"Bearer " + os.environ["VOICECHEAP_ACCESS_TOKEN"]},
timeout=120,
allow_redirects=False,
)
print(response.status_code, response.text)
OAuth 和 MCP 协议
获取已连接用户的身份
读取 OAuth 连接获准访问的身份声明。
GET
/
oauth
/
userinfo
curl --request GET 'https://api.voicecheap.ai/oauth/userinfo' \
--header "Authorization: Bearer $VOICECHEAP_ACCESS_TOKEN"
const input = {};
const response = await fetch('https://api.voicecheap.ai/oauth/userinfo', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.VOICECHEAP_ACCESS_TOKEN}`,
},
redirect: 'manual',
});
console.log(response.status, await response.text());
import os
import requests
response = requests.request(
"GET",
"https://api.voicecheap.ai/oauth/userinfo",
headers={"Authorization":"Bearer " + os.environ["VOICECHEAP_ACCESS_TOKEN"]},
timeout=120,
allow_redirects=False,
)
print(response.status_code, response.text)
读取 OAuth 连接获准访问的身份声明。
GET https://api.voicecheap.ai/oauth/userinfo
身份验证
在 Authorization: Bearer 中发送 OAuth 访问令牌。令牌必须包含 openid;电子邮件声明还需要 email。不接受 API 密钥或 URL 查询参数中的凭据。请求示例
请遵循此路由文档规定的编码和身份验证方式。操作 API 的封装格式和幂等性规则仅适用于操作调用。curl --request GET 'https://api.voicecheap.ai/oauth/userinfo' \
--header "Authorization: Bearer $VOICECHEAP_ACCESS_TOKEN"
const input = {};
const response = await fetch('https://api.voicecheap.ai/oauth/userinfo', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.VOICECHEAP_ACCESS_TOKEN}`,
},
redirect: 'manual',
});
console.log(response.status, await response.text());
import os
import requests
response = requests.request(
"GET",
"https://api.voicecheap.ai/oauth/userinfo",
headers={"Authorization":"Bearer " + os.environ["VOICECHEAP_ACCESS_TOKEN"]},
timeout=120,
allow_redirects=False,
)
print(response.status_code, response.text)
响应
读取 OAuth 连接获准访问的身份声明。HTTP 200
{
"sub": "voicecheap-user-id",
"email": "customer@example.com",
"email_verified": false
}
响应头
{
"Cache-Control": "no-store",
"Pragma": "no-cache"
}
操作说明
- 当前环境不提供身份集成时,OpenID Connect 端点会返回 HTTP 404。依赖身份功能之前,请先检查发现元数据。
- sub 是账户的稳定标识符。仅在获授 email 且账户拥有电子邮件地址时包含 email 和 email_verified。email_verified 反映实际验证状态,可能为 false。已删除或停用的账户无法使用 UserInfo。
错误
| HTTP 状态 | 代码 | 含义或恢复方式 |
|---|---|---|
| 400 | invalid_request | OAuth 访问令牌只能通过 Authorization 头部发送。API 密钥及查询参数或请求体中的 access_token/api_key 凭据会被拒绝。 |
| 401 | invalid_token | OAuth 访问令牌缺失、无效、已过期、已撤销或不再获授权。请重新连接账户。 |
| 403 | insufficient_scope | 令牌缺少 openid,或账户已不再符合访问条件。请使用所需身份权限和符合条件的账户重新连接。详情请查看 WWW-Authenticate 质询。 |
| 404 | invalid_request | 当前环境不提供身份集成时,OpenID Connect 端点会返回 HTTP 404。依赖身份功能之前,请先检查发现元数据。 |
| 429 | temporarily_unavailable | 已达到公开 OAuth 请求速率上限。请等待当前时间窗口结束后重试。 |
| 500 | server_error | 授权暂时不可用。请稍后重试。 |
此页面对您有帮助吗?

