質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

2165閲覧

Twitter API ダイレクトメッセージの送信

Toru_Takakura

総合スコア5

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/07/26 17:06

twitter APIを使用してダイレクトメッセージの送信をしようとした
ところ以下のようなエラーが発生しました。

python

1 2 3ID = "hogehoge" 4text = "テスト" 5 6event = { 7 "event": { 8 "type": "message_create", 9 "message_create": { 10 "target": { 11 "recipient_id": ID 12 }, 13 "message_data": { 14 "text": text 15 } 16 } 17 } 18} 19 20api.send_direct_message_new(event) 21 22 23 24TweepError Traceback (most recent call last) 25<ipython-input-18-73222eeff694> in <module> 26 17 } 27 18 28---> 19 api.send_direct_message_new(event) 29 30~\anaconda\lib\site-packages\tweepy\api.py in send_direct_message_new(self, messageobject) 31 636 method='POST', 32 637 require_auth=True 33--> 638 )(self, post_data=post_data, headers=headers) 34 639 35 640 36 37~\anaconda\lib\site-packages\tweepy\binder.py in _call(*args, **kwargs) 38 255 return method 39 256 else: 40--> 257 return method.execute() 41 258 finally: 42 259 method.session.close() 43 44~\anaconda\lib\site-packages\tweepy\binder.py in execute(self) 45 238 raise RateLimitError(error_msg, resp) 46 239 else: 47--> 240 raise TweepError(error_msg, resp, api_code=api_error_code) 48 241 49 242 # Parse the response payload 50 51TweepError: [{'code': 214, 'message': "event.message_create.target.recipient_id: 'hogehoge' is not a valid Long"}] 52

code:214 のエラー詳細を調べたところ「誰からのdmsも許可する必要があります。」
とあったので、設定からDMを解放したのですが同じエラーが出力されてしまいました。

エラーメッセージではIDの長さが有効ではないみたいなことが書いてあるのですが
ダイレクトメッセージを送る相手のIDなのでどうしたら良いかわからないです。
どなたか教えて頂きたいです!!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

例えばこの辺りのAPI

https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-show

で返ってくる

https://developer.twitter.com/en/docs/tweets/data-dictionary/overview/user-object

の形をしたUser Objectや、ツイートを取得した時に入っているUser Objectを見て、そのid_str要素を調べてください。


メッセージの'hogehoge' is not a valid Longは、"IDの長さが有効ではない"ではなくて、"IDがlong型(=多倍長整数≒Javascriptの範囲を超える整数型)じゃない"という意味です。

投稿2020/07/26 22:49

編集2020/07/26 22:55
quickquip

総合スコア11038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Toru_Takakura

2020/07/27 13:46

ありがとうございます。 教えていただいた通りに実行したところできました。 Long型という意味だったんですね。勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問