お世話になります。
何卒、よろしくお願い致します。
表題の通り、Twitterapiを使ってDMを自動送信したいと考えております。
過去に当サイトで同様の質問をしている方がいらっしゃったので、そちらも目を通したうえで質問させて頂いております。
書いたコードはこちらです↓
python
1import json 2import config 3from requests_oauthlib import OAuth1Session 4 5CK = "sample" 6CS = "sample" 7AT = "sample" 8ATS = "sample" 9twitter = OAuth1Session(CK, CS, AT, ATS) 10 11 12twitter = OAuth1Session(CK, CS, AT, ATS) 13 14headers = {'content-type': 'application/json'} 15url = 'https://api.twitter.com/1.1/direct_messages/events/new.json' 16 17payload = {"event": 18 {"type": "message_create", 19 "message_create": { 20 "target": {"recipient_id": "sample"}, 21 "message_data": {"text": "sample",} 22 } 23 } 24 } 25 26payload = json.dumps(payload) 27 28res = twitter.post(url, 29 headers=headers, 30 data=payload) 31print (res)
結果
python
1<Response [401]>
となります。
※sampleの部分には正しい値を入れてることを前提としてください。
webで検索したところ
TwitterDeveloperにてCallbackURLを設定すればよいと書かれていましたので、そちらの対応は完了しております。
皆様お忙しい中大変恐縮ですが、何卒よろしくお願い申し上げます。
res.text や res.content は確認しましたか?
ご返信ありがとう御座います。
初学者の為大変恐縮ですが、質問させて頂けますと幸いです。
quiqui様のおっしゃられている res.text res.content というのは、requests というライブラリを指されていますでしょうか。もしそうであれば、一度そちらを調べて勉強してみます。
掲示のコードの res が requests.Response 型のオブジェクトのはずなので、その text か content 属性ですね。
https://2.python-requests.org/en/master/user/quickstart/#response-content
https://2.python-requests.org/en/master/user/quickstart/#binary-response-content
ありがとうございます!教えていただいた通りres.textを打ってみたところ、
{"request":"\/1.1\/direct_messages\/events\/new.json","error":"Read-only application cannot POST."}
と出ました。
これをググったところ、
https://stackoverflow.com/questions/8389796/why-this-error-read-only-application-cannot-post
こちらのページに行き着きました。
おそらくここに対応の答えが書いているのではないかと思っています!また報告させていただきます。
ありがとうございます。
回答2件
あなたの回答
tips
プレビュー