Monitoramento
Monitorar uma conta
POST /v1/monitor/targets targets:write
Começa a monitorar uma conta, indicada por screen_name ou por user_id. Se já a conhecemos, a assinatura é imediata; caso contrário, primeiro a resolvemos no X e você recebe 202. Uma conta que o X nos informou nos últimos dez minutos que não pode ser monitorada (não existe, está suspensa ou tem as publicações protegidas) é recusada na hora com 404. Sem event_types, todo tipo de evento que sua chave permite é entregue; com ele, só esses tipos. Enviar event_types para uma conta que você já monitora substitui a escolha; omiti-lo a mantém. Veja Escolher tipos de evento.
Corpo da requisição
| Campo do corpo | Tipo | Significado |
|---|---|---|
screen_name | string | Nome de usuário sem @; 1–15 letras, dígitos ou sublinhados. Envie isto ou user_id |
user_id | string | O id numérico da conta no X, no lugar de screen_name. Um id nunca muda: prefira-o quando o tiver |
event_types | string[] | Só esses tipos de evento são entregues para esta conta; omita ou envie [] para todos. search.match pertence às palavras-chave e é recusado aqui |
resposta
201 assinado, 200 já assinado, 202 enfileirado para resolução; os três trazem um cabeçalho Location apontando para o endpoint de detalhe. Um 202 para uma conta que falhou antes traz last_failure (reason, failed_at). 404 user_not_found, user_suspended ou user_protected: o X nos informou nos últimos dez minutos que esta conta não pode ser monitorada; details.failed_at diz quando.
Status: 201, 200, 202, 400, 402, 403
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"]}'
{
"status": "subscribed",
"state": "subscribed",
"id": "44196397",
"screen_name": "elonmusk",
"name": "Elon Musk",
"event_types": [
"followers.verified.add"
],
"event_types_all": false
}
{
"status": "queued",
"state": "queued",
"screen_name": "newaccount",
"user_id": null,
"event_types": [],
"event_types_all": true,
"note": "target will be resolved and placed shortly; poll GET /v1/monitor/targets/{screen_name}"
}