无法在Twitter开发者门户找到Webhook开发环境,求免费使用方案
在X(原Twitter)免费/基础计划下创建Webhook开发环境的替代方法
方法1:通过API直接创建开发环境
X的API支持绕过开发者门户界面,直接创建Webhook开发环境。你可以调用v1.1版本的POST /1.1/account_activity/all/env_name.json接口(env_name替换为你自定义的环境名称)。
操作步骤:
- 确认已拥有基础计划开发者账号,并生成有效的API密钥、API密钥密码、访问令牌及访问令牌密码。
- 发送请求时需携带OAuth 1.0a认证信息,示例curl命令:
curl --request POST \ --url https://api.twitter.com/1.1/account_activity/all/MyBotEnv.json \ --header 'Authorization: OAuth oauth_consumer_key="你的API密钥", oauth_nonce="随机字符串", oauth_signature="生成的签名", oauth_signature_method="HMAC-SHA1", oauth_timestamp="当前时间戳", oauth_token="你的访问令牌", oauth_version="1.0"' - 请求成功后会返回环境详情,后续可继续通过API配置Webhook URL。
方法2:使用X API v2的Webhook端点
若v1.1接口存在问题,可尝试v2版本的Webhook管理流程:
- 调用
POST /2/account_activity/webhooks注册你的Webhook URL(需HTTPS); - 通过
PUT /2/account_activity/webhooks/:webhook_id/subscriptions完成活动订阅; - 认证支持OAuth 2.0 Bearer Token或OAuth 1.0a,基础计划均兼容。
Webhook验证流程
注册Webhook后,X会向你的URL发送带crc_token参数的GET请求,需返回加密响应完成验证,示例Python代码:
import hmac import hashlib import base64 def generate_response_token(crc_token, consumer_secret): hmac_digest = hmac.new(consumer_secret.encode('utf-8'), msg=crc_token.encode('utf-8'), digestmod=hashlib.sha256).digest() return f"sha256={base64.b64encode(hmac_digest).decode('utf-8')}" # 使用示例 crc_token = "X推送的验证令牌" consumer_secret = "你的API密钥密码" response = {"response_token": generate_response_token(crc_token, consumer_secret)}
验证通过后,Webhook即可接收X的事件推送。
关键注意事项
- 基础计划下每个账号仅能创建1个Webhook环境;
- Webhook URL必须为HTTPS协议,本地测试可使用内网穿透工具临时暴露服务;
- 免费计划部分Webhook功能受限,需确保账号已升级至基础计划。
内容的提问来源于stack exchange,提问作者Hamzeh Alemrani
相关产品推荐
相关产品推荐

