Passer au contenu principal

Premiers pas avec l’API de webhooks de flux filtré

L’API de webhooks de flux filtré v2 est similaire à l’endpoint de flux filtré v2 en ce qui concerne la configuration des règles de filtrage. La différence réside dans le mécanisme d’acheminement des Publications qui correspondent à vos règles.
  • Dans le cas de l’endpoint de flux filtré v2, vous devez établir une connexion persistante et écouter les Publications correspondant à vos règles.
  • Dans le cas de cet endpoint de webhook de flux filtré, vous enregistrez votre webhook et X envoie à votre webhook les Publications correspondant à vos règles.
Ce guide explique comment filtrer et recevoir des Publications à l’aide des endpoints de webhooks de flux filtré. Il comporte 3 étapes :
  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 à votre webhook les Publications correspondant à vos règles.

Configurer vos règles de flux filtré

Les règles de flux filtré sont composées d’un ou de plusieurs opérateurs combinés à l’aide de logique booléenne et de parenthèses afin de définir quelles Publications seront livrées à vos webhooks. L’API de webhooks de flux filtré utilise le même ensemble de points de terminaison que le point de terminaison de flux filtré v2 pour créer et gérer des règles. Consultez ce guide détaillé qui explique comment créer des filtres.

Création de votre webhook

Créez un webhook pour recevoir des événements en enregistrant une URL HTTPS publiquement accessible auprès de X API. Les webhooks doivent gérer les requêtes GET pour la validation CRC et les requêtes POST pour les payloads 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 pour l’Account Activity API (AAA), les webhooks configurés pour celle-ci sont exactement les mêmes ici. Vous pouvez même utiliser le même endpoint de webhook que vous utilisez pour AAA pour cette API, si vous disposez de la capacité nécessaire et pouvez distinguer les événements.

Lier votre instance Filtered Stream à votre webhook

Une fois vos règles définies et le webhook créé, liez le webhook à votre instance Filtered Stream. Les événements de Publication correspondant aux critères sont alors acheminés vers l’URL de votre webhook. Utilisez l’endpoint : POST /2/tweets/search/webhooks/:webhook_id Vous pouvez inclure les mêmes paramètres de requête que ceux utilisés dans l’endpoint de streaming /2/tweets/search/stream, tels que expansions, fields et les options de médias. Cela permet de personnaliser les données incluses dans les payloads d’événements. 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 en cas de succès :
{ 
  "data": { 
    "provisioned": true 
  } 
}
Astuce : vous pouvez relier plusieurs webhooks au même flux pour assurer une redondance ou pour recevoir différents ensembles de champs. Chaque association peut spécifier des paramètres uniques. Une fois que vous avez relié votre instance de Filtered Stream à votre webhook, vous commencerez à recevoir des Publications correspondant à vos règles, comme illustré ci‑dessous :
{
    "data": {
        "id": "1346889436626259968",
        "text": "Learn how to use the user Post timeline and user mention timeline endpoints in the X API v2 to explore Post… https://t.co/56a0vZUx7i",
        "created_at": "2021-01-06T18:40:40.000Z",
        "author_id": "2244994945"
    },
    "includes": {
        "users": [
            {
                "id": "2244994945",
                "name": "Developers",
                "username": "Xdevelopers",
                "created_at": "2013-12-14T04:35:55Z",
                "protected": false
            }
        ]
    },
    "matching_rules": [
        {
            "id": "120897978112909812",
            "tag": "api-posts"
        }
    ]
}

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

Récupérez la liste de tous les webhooks actuellement associé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 de Filtered Stream

Pour ne plus recevoir d’événements sur un webhook spécifique, dissociez‑le en utilisant :
DELETE /2/tweets/search/webhooks/:webhook_id
La réponse sera la suivante :
{
    "data": {
        "deleted": true
    }
}