認証
| Method | Description |
|---|---|
| OAuth 2.0 Authorization Code with PKCE | 推奨 |
| OAuth 1.0a User Context | レガシーサポート |
必要なスコープ (OAuth 2.0)
| Scope | 必要な操作 |
|---|---|
dm.write | メッセージの送信と削除 |
dm.read | dm.write と併せて必須 |
tweet.read | DM 関連スコープで必須 |
users.read | DM 関連スコープで必須 |
エンドポイントの概要
| Method | Endpoint | 説明 |
|---|---|---|
| POST | /2/dm_conversations/with/:participant_id/messages | 1対1のメッセージを送信 |
| POST | /2/dm_conversations | グループ会話を作成 |
| POST | /2/dm_conversations/:dm_conversation_id/messages | 会話にメッセージを追加 |
| DELETE | /2/dm_events/:event_id | メッセージを削除 |
メッセージを送信する
1 対 1 メッセージ
cURL
グループ会話
cURL
conversation_type フィールドは大文字小文字を区別するため、値を必ず "Group" に設定する必要があります。既存の会話に追加する
cURL
メディアの添付
メディアをアップロードする
Media Upload エンドポイント を使用してファイルをアップロードし、
media_id を取得します。- メディアは認証済みユーザー自身がアップロードしたものである必要があります
- メディアはアップロードから 24 時間利用可能です
- 各メッセージで添付できるメディアは 1 つだけです
メッセージ本文にポストのURLを追加して、ポストを含めます。
referenced_tweets フィールドが含まれます。
メッセージ要件
| フィールド | 必須 | 注記 |
|---|---|---|
text | はい* | 添付ファイルがない場合は必須 |
attachments | はい* | text がない場合は必須 |
text と attachments の少なくとも一方は指定する必要があります。
v1.1 との ID 互換性
- v2 でメッセージを作成する
- v1.1 でメッセージを削除する (v2 ではまだ利用できません)
- x.com の URL に含まれる会話 ID を参照する
エラー処理
| ステータス | エラー | 解決策 |
|---|---|---|
| 400 | 無効なリクエスト | リクエストボディの形式を確認してください |
| 401 | 認証されていません | アクセストークンを確認してください |
| 403 | アクセスが拒否されました | スコープとユーザー権限を確認してください |
| 429 | リクエストが多すぎます | しばらく待ってから再試行してください |
よくある問題
ユーザーに送信できない
ユーザーに送信できない
受信者が、知らないユーザーからのメッセージを受け取らないDM設定にしているか、あなたをブロックしている可能性があります。
メディアの添付に失敗した
メディアの添付に失敗した
メディアが同じ認証済みユーザーのアカウントからアップロードされており、かつアップロードから24時間以内のものであることを確認してください。
グループの作成に失敗した
グループの作成に失敗した
すべての参加者idが有効であり、ユーザーがグループDMへの招待を許可していることを確認してください。
次のステップ
クイックスタート
最初のダイレクトメッセージを送信する
DMルックアップ
DM会話を取得する
メディアアップロード
添付メディアをアップロードする
APIリファレンス
エンドポイントの詳細なドキュメント