이벤트 타입 선택
기본적으로 모니터링하는 각 계정의 모든 이벤트 타입이 전달됩니다. 이를 계정별로 좁힐 수 있습니다. 한 계정에서는 새 인증 팔로워만, 다른 계정에서는 올리는 모든 것을 받는 식입니다. 선택은 구독에 속하므로 계정마다 따로 정해집니다.
선택할 수 있는 것
아래 이벤트 타입은 계정마다 하나씩 켜거나 끌 수 있습니다. 키워드 일치(search.match)는 이 목록에 없습니다. 이는 계정이 아니라 키워드에서 옵니다.
| 타입 | 카테고리 | 의미 |
|---|---|---|
tweet.create | 게시물 | 계정이 새 게시물을 올렸습니다 |
tweet.reply | 게시물 | 누군가에게 답글을 달았습니다. reply_to에 답글 대상 게시물이 텍스트와 미디어와 함께 담깁니다 |
tweet.retweet | 게시물 | 누군가의 게시물을 리포스트했습니다. retweet_of에 원본 게시물 전체가 담깁니다 |
tweet.quote | 게시물 | 누군가의 게시물을 인용했습니다. quoted에 인용된 게시물 전체가 담깁니다 |
tweet.edit | 게시물 | 게시물을 수정했습니다. 이벤트는 새 버전을 담고, edit_of는 이 버전이 대체한 버전입니다 |
tweet.delete | 게시물 | 계정이 게시했던 게시물이 사라졌습니다 |
profile.name | 프로필 | 표시 이름 변경 |
profile.screen_name | 프로필 | 핸들 변경 |
profile.bio | 프로필 | 소개 변경 |
profile.location | 프로필 | 위치 변경 |
profile.url | 프로필 | 프로필 링크 변경 |
profile.avatar | 프로필 | 아바타 변경. old와 new는 이미지 URL입니다 |
profile.banner | 프로필 | 배너 변경. old와 new는 이미지 URL입니다 |
profile.pinned | 프로필 | 고정 게시물 변경. tweet과 old_tweet에 게시물 자체가 담깁니다 |
profile.verified | 프로필 | 인증 배지가 생기거나 사라졌습니다 |
follow.add | 팔로우 그래프 | 계정이 누군가를 팔로우하기 시작했습니다. user는 그 계정의 전체 프로필입니다 |
follow.remove | 팔로우 그래프 | 계정이 누군가를 언팔로우했습니다 |
followers.verified.add | 팔로우 그래프 | 인증 계정이 팔로우하기 시작했습니다. user에 소개, 각종 수치, 위치, 가입일이 담깁니다 |
account.status | 계정 | 계정이 비공개, 정지, 볼 수 없는 상태가 되었거나 정상으로 돌아왔습니다 |
자주 쓰는 선택
오른쪽 열의 값을 event_types로 보내세요. 타입은 자유롭게 조합되며 필요한 만큼 나열하면 됩니다.
| 원하는 것 | event_types |
|---|---|
| 그 계정의 새 인증 팔로워만 | ["followers.verified.add"] |
| 원본 게시물만 | ["tweet.create"] |
| 답글만 | ["tweet.reply"] |
| 올리는 모든 것: 게시물, 답글, 리포스트, 인용, 수정 | ["tweet.create", … 5 개 타입] |
| 게시물과 게시물 삭제 | ["tweet.create", "tweet.delete"] |
| 프로필 변경만(프로필 타입 9개 전부) | ["profile.name", … 9 개 타입] |
| 누구를 팔로우·언팔로우했는지만 | ["follow.add", "follow.remove"] |
| 전부(기본값) | null |
설정 방법
모니터링을 시작할 때 고르거나, 이후 언제든 바꿀 수 있습니다. 두 호출 모두 targets:write 스코프가 필요합니다.
선택을 지정해 모니터링 시작
curl -X POST https://api.xsignalfeed.com/v1/monitor/targets \ -H "Authorization: Bearer xsf_your_key" -H "Content-Type: application/json" \ -d '{"screen_name": "elonmusk", "event_types": ["followers.verified.add"]}'
나중에 선택 변경
curl -X PATCH https://api.xsignalfeed.com/v1/monitor/targets/elonmusk \ -H "Authorization: Bearer xsf_your_key" -H "Content-Type: application/json" \ -d '{"event_types": ["tweet.create", "tweet.reply"]}'
모든 타입으로 되돌리기
curl -X PATCH https://api.xsignalfeed.com/v1/monitor/targets/elonmusk \ -H "Authorization: Bearer xsf_your_key" -H "Content-Type: application/json" \ -d '{"event_types": null}'
계정의 현재 선택은 event_types 필드에 있으며, 아무것도 제외하지 않으면 event_types_all이 true입니다.
GET /v1/monitor/targets/elonmusk
{
"target": {
"id": "44196397",
"screen_name": "elonmusk",
"name": "Elon Musk",
"state": "subscribed",
"…": "…",
"event_types": [
"tweet.create",
"tweet.reply"
],
"event_types_all": false
}
}규칙
- 모니터링을 시작할 때
event_types를 생략하면 모든 타입입니다. event_types를 보내면 선택 전체가 바뀌며 추가되지 않습니다.event_types없이 모니터링 호출을 다시 보내면 현재 선택이 유지됩니다.null또는[]는 모든 타입입니다. 목록의 타입을 모두 고른 경우도 같은 방식으로 저장됩니다.- 선택은 스트림, 웹훅,
GET /v1/events에 똑같이 적용됩니다. 열린 연결은 다음 새로고침 때 변경을 반영하며 즉시는 아닙니다. - 게시물 타입을 바꾸는
update(kind_was를 가짐)는 이전 타입과 새 타입 중 하나라도 선택에 있으면 전달됩니다.tweet.create는 고르고tweet.quote는 고르지 않았다면, 게시물이 인용이었음을 알리는update를 받아 그것을 버릴 수 있습니다.tweet.quote는 고르고tweet.create는 고르지 않았다면, 그런 인용은 그update로 처음 전달됩니다. - 선택을 넓히면 추가한 타입은 그때부터 전달됩니다. 변경 이전의 해당 타입 이벤트를
GET /v1/events로 읽을 수 있다고 보장하지는 않습니다. - 키에는 요청에 따라 저희가 설정하는 키 전체 목록이 있을 수도 있습니다(
GET /v1/account의event_types). 두 목록이 모두 허용하는 이벤트만 전달됩니다. - 알 수 없는 타입은
400 invalid_request로 거부됩니다.details.unknown이 그것을,details.allowed가 쓸 수 있는 타입을 알려 줍니다. 전체 목록은GET /v1/meta/event-types입니다. - 키워드는 여기서가 아니라 키워드별로 고릅니다. 키워드를 감시하거나 중단하면 그
search.match이벤트를 받기 시작하거나 멈춥니다.
선택할 수 없는 것
- 인증되지 않은 새 팔로워는 이벤트로 제공하지 않으므로 선택할 수 없습니다. 새 인증 팔로워(
followers.verified.add)만 제공합니다. - 선택은 이벤트 타입으로만 가능하며 내용으로는 할 수 없습니다. "팔로워 1만 명 이상인 인증 팔로워", "이미지가 있는 게시물만", "영어만" 같은 조건은 페이로드 필드(예:
user.followers,media,lang)로 직접 거르세요.