이 가이드는 다이렉트 메시지를 보내고 그룹 대화를 생성하는 방법을 단계별로 안내합니다.
사전 준비 사항시작하기 전에 다음이 필요합니다.
- 승인된 App이 있는 개발자 계정
dm.write 및 dm.read scope를 가진 User Access Token (OAuth 2.0 PKCE)
받는 사람의 사용자 ID 가져오기
메시지를 보내려는 사용자의 user ID가 필요합니다. 이 ID는 사용자 조회 엔드포인트에서 확인할 수 있습니다. 메시지 보내기
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."}'
응답 검토하기
{
"data": {
"dm_conversation_id": "1234567890-9876543210",
"dm_event_id": "1582103724607971332"
}
}
참가자 지정
그룹에 포함하고 싶은 사용자(본인은 제외)의 사용자 ID를 모읍니다.
첫 번째 메시지와 함께 그룹 생성
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!"}
}'
대화 ID 받기
{
"data": {
"dm_conversation_id": "1582103724607971328",
"dm_event_id": "1582103724607971332"
}
}
나중에 더 많은 메시지를 추가할 수 있도록 dm_conversation_id를 저장합니다.
이미 참여 중인 대화에 메시지를 보냅니다:
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."}'
미디어를 첨부해 메시지 보내기
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 -X DELETE "https://api.x.com/2/dm_events/1582103724607971332" \
-H "Authorization: Bearer $USER_ACCESS_TOKEN"
응답:
{
"data": {
"deleted": true
}
}
본인이 보낸 메시지만 삭제할 수 있으며, 다른 참가자가 보낸 메시지는 삭제할 수 없습니다.
OAuth 2.0 PKCE를 사용할 때는 액세스 토큰에 다음 scope를 포함해야 합니다:
| Scope | 설명 |
|---|
dm.write | 메시지 전송 및 삭제 |
dm.read | 대화 읽기 (dm.write와 함께 필요) |
tweet.read | 일부 expansions에 필요 |
users.read | 사용자 expansions에 필요 |