Passer au contenu principal

Prise en main de l’API de webhooks du flux filtré

L’API v2 de webhooks du flux filtré est similaire à l’endpoint v2 du flux filtré pour la configuration des règles de filtrage. La différence réside dans le mécanisme de livraison des Posts correspondant à vos règles.
  • Avec l’endpoint v2 du flux filtré, vous devez établir une connexion persistante et écouter les Posts correspondant à vos règles.
  • Avec cet endpoint de webhook du flux filtré, vous enregistrez votre webhook et X livre les Posts correspondant à vos règles à votre webhook.
Ce guide explique comment filtrer et recevoir des Posts à l’aide des endpoints de webhooks du flux filtré. Trois étapes sont nécessaires :
  1. Configurer vos règles de flux filtré
  2. Créer votre webhook
  3. Lier votre instance Filtered Stream à votre webhook
Une fois que vous avez lié votre instance Filtered Stream à votre webhook, X enverra les Posts correspondant à vos règles à votre webhook.

Configuration de vos règles du flux filtré

Les règles du flux filtré se composent d’un ou de plusieurs opérateurs, combinés au moyen de logique booléenne et de parenthèses, afin de définir quels Posts seront envoyés à vos webhooks. L’API des webhooks du flux filtré utilise le même ensemble d’endpoints que le endpoint v2 du flux filtré pour créer et gérer des règles. Consultez ce guide détaillé qui montre comment créer des filtres.

Création de votre webhook

Créez un webhook pour recevoir des événements en enregistrant une URL HTTPS accessible publiquement auprès de la X API. Les webhooks doivent gérer les requêtes GET pour la validation CRC et les requêtes POST pour les charges utiles d’événements. Suivez la documentation d’introduction aux webhooks pour des instructions détaillées sur la création et la gestion des webhooks. Remarque : Si vous utilisez déjà des webhooks avec l’Account Activity API (AAA), ils sont exactement identiques ici. Vous pouvez même réutiliser le même endpoint de webhook que celui utilisé pour l’AAA avec cette API, à condition de disposer de la bande passante nécessaire et de pouvoir séparer les événements.

Lier votre instance de flux filtré à votre webhook

Une fois vos règles définies et le webhook créé, liez le webhook à votre instance de flux filtré. Les événements de Post correspondants seront ainsi acheminés vers l’URL de votre webhook. Utilisez l’endpoint : POST /2/tweets/search/webhooks/:webhook_id Vous pouvez inclure des paramètres de query identiques à ceux utilisés dans l’endpoint de stream /2/tweets/search/stream, tels que expansions, fields et options media. Cela permet de personnaliser les data incluses dans les charges utiles d’événement. Exemple :
curl --request POST \ 
  --url 
'https://api.x.com/2/tweets/search/webhooks/123456789012345678?ex
pansions=author_id&user.fields=username,name,id' \ 
  --header 'Authorization: Bearer $BEARER_TOKEN' 
Exemple de réponse réussie :
{ 
  "data": { 
    "provisioned": true
  } 
}
Astuce : Vous pouvez lier plusieurs webhooks au même stream pour assurer une redondance ou recevoir différents ensembles de champs. Chaque liaison peut spécifier des paramètres uniques. Une fois que vous avez associé votre instance de flux filtré à votre webhook, vous commencerez à recevoir des Posts correspondant à vos règles, comme illustré ci‑dessous :
{
    "data": {
        "id": "1346889436626259968",
        "text": "Apprenez à utiliser les endpoints de chronologie des Posts utilisateur et de mentions utilisateur dans l'X API v2 pour explorer les Posts… https://t.co/56a0vZUx7i",
        "created_at": "2021-01-06T18:40:40.000Z",
        "author_id": "2244994945"
    },
    "includes": {
        "users": [
            {
                "id": "2244994945",
                "name": "Développeurs",
                "username": "Xdevelopers",
                "created_at": "2013-12-14T04:35:55Z",
                "protected": false
            }
        ]
    },
    "matching_rules": [
        {
            "id": "120897978112909812",
            "tag": "api-posts"
        }
    ]
}

Récupération des webhooks liés au flux filtré

Récupérez la liste de tous les webhooks actuellement liés à votre flux filtré :
GET /2/tweets/search/stream/webhooks 
Exemple de réponse :
{
    "data": {
        "links": [
            {
                "application_id": "29893711",
                "business_user_id": "1877374016438091776",
                "fields": [
                    "user.fields=username",
                    "name",
                    "id",
                    "expansions=author_id"
                ],
                "instance_id": "1877375130462289920",
                "webhook_id": "1952390923729424384"
            }
        ]
    }
}

Dissocier votre webhook du flux filtré

Pour cesser de recevoir des événements sur un webhook spécifique, dissociez-le à l’aide de :
DELETE /2/tweets/search/webhooks/:webhook_id
La réponse sera la suivante :
{
    "data": {
        "deleted": true
    }
}
I