无法为Twitter帐户活动API [python3]

时间:2018-07-07 18:16:07

标签: python python-3.x twitter webhooks

我正在尝试使用帐户活动API设置Twitter应用程序,以替换我以前使用用户流式传输端点的设置。我希望能够实时向发送给特定URL的一个用户发送DM消息。

these migration instructions之后,我在网站as described here上设置了一个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')

我在这里做什么错了?

1 个答案:

答案 0 :(得分:1)

原来是由于以下原因造成的:

  1. 尚未在此处创建环境:https://developer.twitter.com/en/account/environments,如此处所述:https://developer.twitter.com/en/docs/accounts-and-users/subscribe-account-activity/guides/getting-started-with-webhooks
  2. 在创建在/ webhook端点返回的令牌的函数中使用错误的消费者机密