前提・実現したいこと
こちら(https://tadaken3.hatenablog.jp/entry/python-sent-dm)にあるコードを参考にし、Twitter api を利用してDMを送る機能を実装しようとしています。しかし、このままではscreen_nameから直接送付先を指定することができません。recipient_idではなくscreen_name(@から始まるID)を用いて直接送付先を指定することは可能でしょうか。
上記サイトに掲載されているコードを参考にして作成したコード
Python
# coding: utf-8 import json from requests_oauthlib import OAuth1Session # コンシューマーキーなどをいれてください CK = "CONSUMER_KEY" CS = "CONSUMER_SECRET" AT = "ACCESS_TOKEN" ATS = "ACCESS_TOKEN_SECRET" twitter = OAuth1Session(CK, CS, AT, ATS) headers = {'content-type': 'application/json'} url = 'https://api.twitter.com/1.1/direct_messages/events/new.json' print() print("送付相手のユーザーIDを入力") target_id = input(">> ")# ここに送付相手のidを入力しましす print("メッセージを入力") message_text = input(">> ")# ここにメッセージを書きます。 payload = {"event": {"type": "message_create", "message_create": { "target": {"recipient_id": target_id }, "message_data": {"text": message_text,} } } } payload = json.dumps(payload) req = twitter.post(url, headers=headers, data=payload) if req.status_code == 200: print("----------------------------------------------------") print("Succeed!") else: print("----------------------------------------------------") print("ERROR : %d"% req.status_code)
recipient_idとscreen_nameを相互変換することができるサイトを用いて実際にIDを変換して試したところ、実際に動くことは確認済みです。
よろしくお願いします。
まだ回答がついていません
会員登録して回答してみよう