メインコンテンツへスキップ
このガイドでは、ダイレクトメッセージを送信し、グループ会話を作成する方法を順を追って説明します。
前提条件開始する前に、以下を用意してください。
  • 承認済みの App を持つ 開発者アカウント
  • User Access Token (OAuth 2.0 PKCE、dm.write および dm.read スコープ付き)

1対1メッセージを送信する

1

宛先ユーザーのIDを取得する

メッセージを送りたい相手のユーザーIDが必要です。これは User lookup endpoint から取得できます。
2

メッセージを送信する

cURL
curl -X POST "https://api.x.com/2/dm_conversations/with/9876543210/messages" \
  -H "Authorization: Bearer $USER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text": "Hello! This is a message from the API."}'
3

レスポンスを確認する

{
  "data": {
    "dm_conversation_id": "1234567890-9876543210",
    "dm_event_id": "1582103724607971332"
  }
}

グループ会話を作成する

1

参加ユーザーを指定する

グループに含めたい全員のユーザーID (自分自身を除く) を収集します。
2

最初のメッセージ付きでグループを作成する

cURL
curl -X POST "https://api.x.com/2/dm_conversations" \
  -H "Authorization: Bearer $USER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "conversation_type": "Group",
    "participant_ids": ["944480690", "906948460078698496"],
    "message": {"text": "Welcome to our new group!"}
  }'
3

会話IDを取得する

{
  "data": {
    "dm_conversation_id": "1582103724607971328",
    "dm_event_id": "1582103724607971332"
  }
}
後でメッセージを追加できるように、dm_conversation_id を保存しておきます。

既存の会話にメッセージを追加する

すでに参加している会話にメッセージを送信するには、次のようにします。
cURL
curl -X POST "https://api.x.com/2/dm_conversations/1582103724607971328/messages" \
  -H "Authorization: Bearer $USER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text": "Adding another message to the conversation."}'

メディア付きメッセージを送信する

1

メディアをアップロードする

まず、Media Upload エンドポイントを使ってメディアをアップロードします。
2

メディアを添付して送信する

cURL
curl -X POST "https://api.x.com/2/dm_conversations/with/9876543210/messages" \
  -H "Authorization: Bearer $USER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Check out this image!",
    "attachments": [{"media_id": "1234567890123456789"}]
  }'

メッセージを削除する

自分が送信したメッセージを削除するには、次のようにします:
cURL
curl -X DELETE "https://api.x.com/2/dm_events/1582103724607971332" \
  -H "Authorization: Bearer $USER_ACCESS_TOKEN"
レスポンス:
{
  "data": {
    "deleted": true
  }
}
自分が送信したメッセージだけを削除でき、他の参加者が送信したメッセージは削除できません。

必要なスコープ

OAuth 2.0 PKCE を使用する場合、アクセストークンには次のスコープが必要です。
Scope説明
dm.writeメッセージを送信および削除する
dm.read会話を閲覧する (dm.write と併用必須)
tweet.read一部の expansions に必須
users.readユーザー expansions に必須

次のステップ

DM ルックアップ

DM 会話を取得

連携ガイド

基本概念とベストプラクティス

APIリファレンス

エンドポイントの詳細ドキュメント

サンプルコード

実行可能なコード例