Pipedream
Construisez une automatisation de workflow Pipedream pour la recherche de tweets, les profils, les tweets tendance, les triggers HTTP et les publications approuvées via TwexAPI.
Construisez une intégration Twitter Pipedream pour les recherches, profils, tweets tendance et publications approuvées. TwexAPI fournit une API REST et une clé API pour chaque workflow.
Choisissez un trigger webhook pour les handoffs agent, un trigger planifié pour les recherches récurrentes, ou des étapes de code inline lorsque vous avez besoin d’une normalisation personnalisée.
Choisir un modèle d’automatisation Pipedream
Trigger HTTP + étape code
Recevez du JSON strict depuis un agent MCP, normalisez les lignes et routez vers Slack ou Sheets.
Lectures REST planifiées
Appelez TwexAPI selon un rythme pour la recherche de tweets ou les rapports de tendances.
Package de composant privé
Packagez des requêtes authentifiées répétées lorsque toute l’équipe a besoin des mêmes actions.
Séparez les recherches, handoffs webhook, exports d’abonnés et écritures approuvées dans des workflows distincts. Des workflows plus petits exposent les erreurs et limites de débit plus clairement.
Prérequis
- Clé API TwexAPI
- Compte Pipedream
- Comptes connectés Slack, Google Sheets, Airtable ou base de données optionnels
- Agent compatible MCP connecté à
https://api.twexapi.io/mcpoptionnel
Intégration API serverless
Commencez chaque requête TwexAPI à https://api.twexapi.io. Envoyez la clé API via le header Authorization: Bearer. Gardez les clés dans les variables d’environnement Pipedream, pas dans les exports d’étapes ou les logs.
export TWEXAPI_API_KEY="YOUR_API_KEY"
Utilisez GET /balance comme première vérification d’authentification. Elle vérifie la clé API sans modifier un compte X.
Helper de requête partagé
export default defineComponent({
props: {
twexapi: {
type: "string",
label: "TwexAPI API Key",
secret: true,
},
},
methods: {
async twexapiRequest($, { method, path, body, params }) {
const url = new URL(`https://api.twexapi.io${path}`);
if (params) {
Object.entries(params).forEach(([key, value]) => {
if (value !== undefined && value !== null) {
url.searchParams.set(key, String(value));
}
});
}
const response = await fetch(url, {
method,
headers: {
Authorization: `Bearer ${this.twexapi}`,
"Content-Type": "application/json",
},
body: body ? JSON.stringify(body) : undefined,
});
if (!response.ok) {
throw new Error(`TwexAPI request failed with HTTP ${response.status}`);
}
return response.json();
},
},
});
Actions de démarrage
| Action | Route TwexAPI |
|---|---|
| Rechercher des tweets | POST /twitter/advanced_search/page |
| Obtenir le profil utilisateur | GET /twitter/{screen_name}/about |
| Rechercher des utilisateurs | GET /twitter/search-user/{keyword}/{target_count} |
| Obtenir les tendances | GET /twitter/global-trending/tweets |
| Lister les abonnés | POST /v3/twitter/users/followers |
| Créer un tweet | POST /twitter/tweets/create |
Étape code de recherche de tweets
export default defineComponent({
async run({ steps, $ }) {
const response = await fetch("https://api.twexapi.io/twitter/advanced_search/page", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.TWEXAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
searchTerms: ["AI agents lang:en"],
sortBy: "Latest",
nextCursor: "",
}),
});
if (!response.ok) {
throw new Error(`TwexAPI request failed with HTTP ${response.status}`);
}
return response.json();
},
});
Flux webhook-first
- Créez un trigger HTTP dans Pipedream.
- Demandez à un agent compatible MCP de collecter des lignes TwexAPI et retourner du JSON strict.
- POSTez le JSON vers l’endpoint Pipedream.
- Normalisez et dédupliquez les lignes dans une étape code.
Étape de normalisation JavaScript
export default defineComponent({
async run({ steps }) {
const payload = steps.trigger.event.body;
return (payload.tweets || []).map((tweet) => ({
id: tweet.tweet_id || tweet.id,
url: tweet.public_url ?? `https://x.com/i/web/status/${tweet.tweet_id || tweet.id}`,
author: tweet.author_username,
text: tweet.text || tweet.full_text,
created_at: tweet.created_at,
route_used: payload.route_used,
next_cursor: payload.next_cursor,
}));
},
});
Prompt agent MCP suggéré :
Use Twexapi MCP to get quote tweets for tweet ID 1803006263529541838.
Return only JSON with route_used, source_tweet_id, has_more, next_cursor, and tweets.
Each tweet must include tweet_id, author_username, text, created_at, and public_url.
Do not call write endpoints.
Handoff de résultats
Pages de tweets
Exportez tweet_count, has_more et next_cursor ; retournez des lignes avec tweet_id, text, author_username et created_at.
Lignes de profil
Exportez user_id, username, name, compteurs d’abonnés et champs de vérification.
Lots de tendances
Exportez le pays, le sujet, le tag de contenu et les lignes de tweet avec les métadonnées du workflow.
Actions d'écriture
Prévisualisez avec le CLI --dry-run. Les actions d’écriture nécessitent un cookie ou auth_token.
Gestion des erreurs
Routez chaque statut avant d’exporter les lignes en aval.
| Statut | Action |
|---|---|
400 |
Corrigez les champs de requête ; ne pas réessayer sans modification. |
401 |
Remplacez la clé API. |
403 |
Résolvez l’accès au compte ou les crédits. |
429 |
Ralentissez et préservez le curseur. |
5xx |
Réessayez les lectures sûres avec backoff borné. |
Persistez un curseur de page uniquement après succès du traitement en aval.
Recettes
Recherche de tweets vers Slack
- Planifiez le workflow selon votre cadence de reporting.
- Appelez
POST /twitter/advanced_search/page. - Filtrez les tweets par seuil d’engagement.
- Envoyez le texte, l’auteur et le lien des tweets sélectionnés à Slack.
Handoff agent vers Google Sheets
- Le trigger HTTP reçoit le JSON de handoff MCP.
- Normalisez les lignes de tweet.
- Upsert dans Sheets par
tweet_id.
Page d’abonnés vers CRM
- L’étape HTTP ou planifiée appelle
POST /v3/twitter/users/followers. - Normalisez les lignes d’abonnés.
- Le CRM upsert par
user_id. - Le data store conserve
next_cursor.
Checklist de test
- Confirmez que le corps du trigger est du JSON valide.
- Utilisez
tweet_idouuser_idcomme clé de déduplication. - Stockez
next_cursordans les data stores Pipedream pour la continuation planifiée. - Gardez
TWEXAPI_API_KEYuniquement dans les variables d’environnement. - Ne jamais journaliser les tokens Bearer dans la sortie d’étape.