목표: X의 다이렉트 메시지를 내 코드로, 내 X 앱 아래에서 주고받습니다. 그래서 사용량은 X가 나에게 청구하고, 모든 호출은 내 계정으로만 동작합니다.
1. X 앱 만들기
console.x.com에서 앱에 「Read and write and Direct message」 권한을 주고 크레딧을 구매하세요. 그런 다음 「Keys and tokens」에서 키 네 개를 복사합니다. API 키와 시크릿, 그리고 글을 쓸 계정의 액세스 토큰과 시크릿입니다. 액세스 토큰과 시크릿은 권한을 설정한 뒤에 만들어야 하며, 그렇지 않으면 그 권한이 담기지 않습니다.
2. 한 번만 연결하기
curl -X PUT https://makehybrid.com/x/v1/connection \
-H "X-API-KEY: $MAKEHYBRID_KEY" -H "content-type: application/json" \
-d '{"api_key":"…","api_secret":"…","access_token":"…","access_secret":"…"}'
키는 X로 확인된 뒤 봉인되어 보관되며, 다시 보여 주지 않습니다. 연결하면 내 계정의 메시지를 이쪽으로 보내라고 X에도 알립니다.
3. 보내기
curl -X POST https://makehybrid.com/x/v1/messages \
-H "X-API-KEY: $MAKEHYBRID_KEY" -H "content-type: application/json" \
-d '{"to":"@pat","text":"Thanks for reaching out!"}'
4. 답장 받기
curl -X POST https://makehybrid.com/x/v1/webhooks/endpoints \
-H "X-API-KEY: $MAKEHYBRID_KEY" -H "content-type: application/json" \
-d '{"url":"https://acme.com/hooks/x","events":["x.message_received"]}'
누가 내 계정의 메시지를 받을 수 있는지는 X가 정합니다. 내 메시지를 받지 않는 사람에게 보내면 X의 거부로 응답하며, 다시 시도해도 달라지지 않습니다.
자주 묻는 질문
X Chat의 암호화된 메시지는 어떻게 하나요?
연결할 때 X Chat 패스코드를 chat_pin으로 추가하면, X Chat 대화의 메시지를 암호화된 상태로 읽고 쓸 수 있습니다. X가 허용하는 틀린 패스코드 횟수는 몇 번뿐이므로, 거부된 패스코드는 새 것을 보내기 전까지 다시 시도하지 않습니다.
프로젝트 룸의 X 채널과 같은 연결인가요?
네. 어느 쪽에서 연결하든 둘 다 쓸 수 있습니다.