長野エンジニアライフ

東京から長野に移住したエンジニアのブログです。🦒🗻⛰

Error at webhook: 401 {"errors":[{"code":32,"message":"Could not authenticate you."}]}の対処

事象

twitterのAccount Activity APIの利用時にwebhookの登録を行いたいが以下のエラーが発生

Error at webhook: 401
{"errors":[{"code":32,"message":"Could not authenticate you."}]}

原因

postするURLとパラメータを分離して書く必要があるっぽい。

...
url = 'https://api.twitter.com/1.1/account_activity/all/:環境名/webhooks.json?url=:webhookのアドレス'
twitter = OAuth1Session(CK, CS, AT, AS)
req = twitter.post(url)
....

対応方法

以下のようにパラメータとしてwebhookアドレスを指定したら認証できた。

...
url = 'https://api.twitter.com/1.1/account_activity/all/:環境名/webhooks.json'
params = {"url": ":webhookのアドレス'"}
twitter = OAuth1Session(CK, CS, AT, AS)
req = twitter.post(url, params = params)
....

だけど、以下のエラーが今度はでた。   webhookに対するCRCテスト?が合格できていないよう。

Error at webhook: 400
{"errors":[{"code":214,"message":"Webhook URL does not meet the requirements. Invalid CRC token or json response format."}]}