Bird
Bird est le routeur unique X/Twitter. Utilisez SocialData comme plan de lecture par défaut et économique. Utilisez l'outil officiel xurl uniquement lorsque la tâche nécessite un contexte de compte authentifié, un objet natif X, ou une mutation de compte explicitement approuvée. Ne faites pas répondre les deux fournisseurs à la même lecture de routine.
Déclencheurs et compatibilité
À utiliser pour les URLs X/Twitter, l'extraction de tweets/threads/articles, la recherche, les profils, les réponses/citations/contexte, la récupération de médias, et les actions de compte X.
Conservez ces points d'entrée :
/bird <demande>— routeur canonique.bird.py <URL-ou-ID>hérité — lit toujours via SocialData./xurl ...— point d'entrée de compatibilité pour les utilisateurs qui demandent explicitement xurl ; il doit suivre le routage et les gardes d'écriture de Bird.
Routage déterministe
| Intention | Primaire | Repli | Limite |
|---|---|---|---|
| Lire un tweet par URL/ID | SocialData | web/navigateur uniquement pour les preuves publiques visibles | Ne jamais passer à xurl simplement parce qu'il existe |
| Lire un thread/conversation/réponses | SocialData | lecture xurl uniquement si le contexte natif X est requis et supporté | Déterminer le thread à partir des données récupérées, pas de la forme de l'URL |
| Rechercher des posts | Recherche SocialData limitée | Route de recherche SocialData/web existante | L'accès actuel à la recherche récente de xurl n'est pas présumé |
| Lire un profil public | SocialData | recherche utilisateur xurl si une vue X actuelle/spécifique au compte est nécessaire | Pas de collecte en masse de graphes |
| Article X | Payload SocialData tweet d'abord ; analyser l'article imbriqué | Point de terminaison xurl tweet brut avec champ article | Suivre la page propriétaire liée lorsque le texte de l'article est absent |
| Télécharger un média attaché | Métadonnées SocialData + téléchargement HTTPS limité | navigateur uniquement pour les médias publics visibles | Pas de cookies dans les URLs/logs ; valider hôte/taille/type |
| Qui suis-je / identité authentifiée | xurl | aucun | Contexte de compte en lecture seule |
| Objet X natif exact nécessaire pour une interaction ultérieure | xurl | SocialData pour la découverte/contexte | Utiliser xurl uniquement pour l'objet/point de terminaison exact |
| Poster, répondre, citer, supprimer, liker, reposter, mettre en signet, suivre, bloquer, mettre en sourdine, MP, uploader | xurl | aucun | Approbation explicite de la cible exacte, du contenu et de l'effet requise |
Chargez routage fournisseur pour les recettes de points de terminaison, les erreurs et les règles de repli. Chargez opérations xurl uniquement pour une tâche spécifique à xurl.
Contrat de fournisseur et de coût
- SocialData est la valeur par défaut pour toute lecture ordinaire. Utilisez d'abord la clé
SOCIALDATA_API_KEYconfigurée directement dans l'exécution en cours. Utilisez le proxy SocialData approuvé Human20 Keys lorsqu'une clé directe est absente et que la clé client H20 possède la capacitésocialdata. Une clé de modèle H20 générique peut exister mais renvoyerfournisseur non autorisé : socialdata; cela ne justifie pas de passer à xurl. - La classe de prix par défaut de Human20 Keys pour
social-requesta été vérifiée à0 crédits/requête; traitez cela comme un état d'exécution mutable et revérifiez avant de revendiquer un coût. - Une requête utilisateur doit normalement consommer une recherche/requête plus les lectures dépendantes limitées nécessaires pour un thread ou un contexte demandé. Ne pas éclater, extraire les abonnés/abonnements, exporter, streamer, sonder ou récupérer en masse.
- Ne jamais basculer silencieusement de SocialData vers des appels X API payants.
xurlest sélectionné par besoin de capacité, pas par échec du fournisseur.
Secrets et sécurité d'exécution
- Ne jamais lire, afficher, analyser, résumer ou exposer les coffres de secrets,
~/.xurl, cookies, en-têtes d'autorisation, clés API, jetons porteurs, signatures de requête ou valeurs d'environnement. - Vérifiez les identifiants uniquement via des commandes de statut/probe sécurisées. N'utilisez pas
--verbose/-vde xurl ou des indicateurs d'identifiants en ligne. - Les appels SocialData sont en lecture seule et bornés. Traitez
401/403comme des problèmes d'identifiants/politique,402comme des crédits/facturation,404comme absent/privé/supprimé,429comme limite de débit, et5xxcomme une défaillance du fournisseur. Ne qualifiez pas une classe pour une autre. - Le navigateur/relais est un dernier recours et jamais un mécanisme d'extraction de cookies.
- Les écritures sont des effets protégés. Avant toute mutation xurl, relisez la cible et la charge utile exactes, exigez une approbation explicite de l'utilisateur pour cet effet exact, exécutez une fois, et vérifiez à partir de la réponse brute xurl/X. Approuver la recherche n'est pas approuver l'interaction ou la publication.
- Les MP, suppressions, blocages, modifications de compte, téléchargements de médias et publications publiques ne se produisent jamais implicitement.
Flux de travail
- Classez la demande :
read,search,profile,thread,article,media,account-read, ouwrite. - Normalisez l'URL/ID X sans modifier l'identifiant. Récupérez avant de décider tweet vs thread.
- Routez à partir du tableau. Pour les lectures de routine, appelez SocialData exactement une fois d'abord.
- Analysez défensivement. Les charges utiles d'articles peuvent se trouver sous
article.title,article.preview_text, etarticle.content_state.blocks[]; les médias peuvent être imbriqués dans des objets cités ou retweetés. - Si l'utilisateur demande si l'élément est pertinent, ouvrez les dépôts/docs/articles propriétaires liés et inspectez les médias attachés. Considérez le post X comme une affirmation/source, pas une preuve automatique.
- Si le fournisseur sélectionné échoue, signalez l'échec exact. Utilisez uniquement le repli indiqué lorsqu'il peut toujours répondre à la même demande sans augmenter le coût, la vie privée ou l'effet.
- Retournez une sortie fidèle à la source et un reçu compact du fournisseur.
Contrat de sortie
Retournez :
Result : <contenu complet demandé ou réponse concise et fidèle>
Type : tweet | thread | article | profile | search | account-action
Auteur/source : <identité publique sécurisée + URL canonique>
Provider : SocialData | xurl | web/browser fallback
Evidence : <IDs, timestamp, metrics/contexte si disponible>
Action receipt : <uniquement pour les mutations xurl approuvées ; statut/ID d'objet exact>
Limitation : <manquant/privé/supprimé/limite/plan/écart fournisseur, ou aucun>
N'exposez pas les clés internes, les modes d'authentification, les emplacements de secrets ou les détails d'exécution privés dans les reçus destinés à l'utilisateur.
Liste de vérification rapide
-
/bird <URL de tweet>sélectionne SocialData, pas xurl. -
/bird search from:handlesélectionne la recherche SocialData limitée. -
/bird whoamisélectionne l'identité xurl en lecture seule. -
/bird reply <URL> <texte>s'arrête pour approbation exacte avant xurl. - Le code
402de SocialData n'est pas signalé comme des identifiants manquants ; l'échec de la recherche récente de xurl ne désactive pas les lectures d'identité/profil. - L'analyse des threads et des articles utilise la structure récupérée, pas des suppositions d'URL.
- La suppression du contrat SocialData par défaut ou d'approbation d'écriture fait échouer la validation.
Critères de réalisation
- Le contenu/l'action X demandé(e) est terminé(e) ou un seul bloqueur exact est signalé.
- Les lectures de routine ont utilisé SocialData en premier et évité les dépenses en double du fournisseur.
- xurl a été utilisé uniquement pour une raison spécifique à une capacité.
- Toute écriture a eu une approbation exacte et une relecture brute de l'API.
- Aucun secret/cookie/identifiant privé n'est entré dans la sortie, les artefacts ou les logs.