首页 > 解决方案 > 无法为 Twitter 帐户活动 API [python3] 注册 webhook

问题描述

我正在尝试使用 Account Activity API 设置 Twitter 应用程序,以替换使用用户流端点的旧设置。我希望能够将 DM 消息实时发送到特定 URL 的一个用户。

按照这些迁移说明,我已经在我的站点上设置了一个 webhook 端点,如此处所述。我检查了该过程是否正常,确保当我https://example.com/webhook_endpoint?crc_token=foo在浏览器中打开时,我会收到一个令牌作为响应。

现在我正在尝试注册我的 webhook,但失败了。我正在使用以下代码,并得到 403 响应。

from requests_oauthlib import OAuth1Session
import urllib

CONSUMER_KEY = 'my consumer key'
CONSUMER_SECRET = 'my consumer secret'
ACCESS_TOKEN = 'my access token'
ACCESS_SECRET = 'my access secret'

twitter = OAuth1Session(CONSUMER_KEY,
                        client_secret=CONSUMER_SECRET,
                        resource_owner_key=ACCESS_TOKEN,
                        resource_owner_secret=ACCESS_SECRET)
webhook_endpoint = urllib.parse.quote_plus('https://example.com/webhook/')
url = 'https://api.twitter.com/1.1/account_activity/all/env-beta/'
    'webhooks.json?url={}'.format(webhook_endpoint)
r = twitter.post(url)

403响应内容:{"errors":[{"code":200,"message":"Forbidden."}]}

我可以使用相同的会话对象成功发布状态,并且

r = twitter.post('https://api.twitter.com/1.1/statuses/update.json?status=Test')

我在这里做错了什么?

标签: pythonpython-3.xtwitterwebhooks

解决方案


事实证明,这是由于以下因素的组合:

  1. 此处未创建环境:https ://developer.twitter.com/en/account/environments如此处所述:https ://developer.twitter.com/en/docs/accounts-and-users/subscribe-account-活动/指南/网络钩子入门
  2. 在创建在 /webhook 端点返回的令牌的函数中使用了错误的使用者密码

推荐阅读