概览
- API Key and Secret: 本质上相当于你的 App 的“用户名”和“密码”。你将使用它们来对需要 OAuth 1.0a 用户上下文的请求进行身份验证,或用于生成其他令牌,例如用户 Access Tokens 或 App Access Token。
- Access Token and Secret: 通常,Access Tokens 代表你所代为发起请求的用户。通过开发者门户网站生成的 Access Tokens 代表拥有该 App 的用户。你将使用这些令牌对需要 OAuth 1.0a 用户上下文的请求进行身份验证。如果你希望代表其他用户发起请求,需要使用三方 OAuth 授权流程以获得他们的授权。
- Client ID and Client Secret: 这些凭据用于通过 OAuth 2.0 身份验证获取用户 Access Token。与 OAuth 1.0a 类似,用户 Access Tokens 用于对提供私有用户账号信息或代表其他账号执行操作的请求进行身份验证;但在 OAuth 2.0 下可通过更细粒度的 scope 更好地控制客户端应用对用户的访问权限。
- App only Access Token: 当向仅返回 X 上公开可用信息的 endpoint 发起请求时,你将使用此令牌。
App 和 Project
开发者门户网站仪表板
- 查看你现有的独立 App 及其关联的 App ID。
- 创建新的 Project、App 或独立 App。
- 删除未使用的 Project 或 App。
- 查看或更新特定 App 的设置,包括更新名称、描述、网站、回调 URL 以及权限。
- 重新生成 App 专属凭证,例如 API Key 与 Secret、App Access Token,以及 App 所有者的用户 Access Tokens。
注册获取访问权限
机器人账户的 “Automated Account” 标签
- 前往账户设置
- 选择 “Your account”
- 选择 “Automation”
- 选择 “Managing account”
- 接着,选择运行你的机器人账户的 X 账户
- 输入密码登录
- 最后,你应能看到标签已应用到你的账户的确认信息。
App 管理
简介
- 查看你现有的 App 和 Projects 及其关联的 App ID。
- 创建新的 Project 或独立 App。
- 删除 Project、App 或独立 App。
- 点击进入某个特定 App 的设置。在设置中,你可以查看 App 详情、密钥和令牌,以及权限。
- 将你的 App 的用户身份验证设置更新为使用 OAuth 1.0a 或 OAuth 2.0(开放授权 2.0)。
注意:所有 App 的密钥和令牌在开发者门户网站中已不可见,生成后必须妥善保存。我们建议使用密码管理器来存储你的密钥和令牌。你可以显示 API Key 提示,以帮助你将凭证与其对应的 App 进行匹配。
App 设置
App 详情
密钥和令牌
- API Key(Consumer Key)和 API Secret(Consumer Secret)
- App Access Token
- User Access Token 和 Access Token Secret - 开发者门户网站中提供的 Access Token 和 Secret 对应于拥有该 App 的用户。
用户身份验证设置
OAuth 1.0a 应用—用户权限
OAuth 2.0 类型的 App
App 权限
OAuth 1.0a App 权限
- 仅读取
- 读取和写入
- 读取、写入以及访问私人讯息
仅限读取
读取与写入
读取、写入与访问私人讯息
- POST /2/dm_conversations/:dm_conversation_id/messages
- POST /2/dm_conversations/
- POST /2/dm_conversations/with/:participant_id/messages
- GET /2/dm_conversations/with/:user_id/dm_events
- GET /2/dm_conversations/:dm_conversation_id/dm_events
- GET /2/dm_events
确定权限
x-access-level
标头。该标头的值表示当前使用的权限级别。可能的取值包括 read、read-write 和 read-write-directmessages。
回调 URL
- OAuth 2.0 authorization code flow with PKCE
- OAuth 1.0a 3-legged OAuth flow(以及单独的 Sign in with X flow)
callback_url
参数。类似地,使用 OAuth 2.0 授权码(Authorization Code)配合 PKCE 的开发者,必须在向 GET oauth2/authorize endpoint 发起请求时传递 redirect_uri
参数。
除了使用这些参数之外,开发者还必须确保已将该回调 URL 添加到其 App 的回调 URL 允许列表中,该列表可在 开发者门户网站 的 App 设置页面找到。
如果配置正确,用户在作为这些流程的一部分成功登录 X 后,将被重定向到回调 URL。
需要注意的事项
callback_url
或 redirect_uri
参数将回调 URL 作为 query 参数传递,请确保对该 URL 进行 HTTP 编码。
回调 URL 限制
X Apps 仪表板中回调 URL 的数量上限为 10。你的回调 URL 必须与在 Apps 仪表板允许列表中添加的回调 URL,以及你在授权流程中传入的参数值完全匹配。
如果希望在回调 URL 中包含与请求相关的 data,可以使用 state
参数来存储在用户重定向后需要携带的 data。可以将 data 直接编码进 state
参数,或将该参数用作会话 ID,在服务器端存储状态。
不要使用 localhost 作为回调 URL
请不要使用 localhost,请在本地使用自定义主机或 http(s)://127.0.0.1
自定义协议 URL
如果希望利用移动端深度链接,可以使用带有路径和域名部分的自定义协议 URL,例如 twitter://callback/path。不过,我们确实有一份不允许使用的协议列表需要避免。你可以在下方查看该不允许使用的协议列表。
不允许的协议
vbscript | ldap |
javascript | mailto |
vbs | mmst |
data | mmsu |
mocha | msbd |
keyword | rtsp |
livescript | mso-offdap |
ftp | snews |
file | news |
gopher | nntp |
acrobat | outlook |
callto | stssync |
daap | rlogin |
itpc | telnet |
itms | tn3270 |
firefoxurl | shell |
hcp | sip |
错误示例
HTTP 403 - Forbidden
HTTP 400