· Nacho Coll · Guides · 9 λεπτά ανάγνωσης
X Alerts API: Προγραμματιστικές Συνδρομές και Ιστορικό Ειδοποιήσεων
Δημιουργήστε προσαρμοσμένες ενσωματώσεις πάνω στο WALLAWHATS. Προσθέστε και αφαιρέστε συνδρομές X, κατευθύνετε ειδοποιήσεις σε κανάλια, ανακτήστε ιστορικό ειδοποιήσεων — όλα μέσω REST.

Όταν οι ειδοποιήσεις X (Twitter) σε πραγματικό χρόνο γίνονται κρίσιμες για την επιχείρησή σας, η χειροκίνητη διαχείριση από το dashboard φτάνει στα όριά της. Είτε δημιουργείτε dashboards πληροφοριών πελατών, αυτοματοποιείτε ροές εργασίας παρακολούθησης brand, είτε δημιουργείτε προσαρμοσμένα συστήματα ειδοποιήσεων για trading desks, χρειάζεστε προγραμματιστικό έλεγχο των συνδρομών X alerts.
Το WALLAWHATS παρέχει REST API που σας επιτρέπει να δημιουργείτε, διαχειρίζεστε και ελέγχετε συνδρομές X alerts χωρίς να χρειάζεται να αγγίξετε το web interface. Προσθέστε ή αφαιρέστε παρακολουθούμενους λογαριασμούς, ανακτήστε ιστορικό ειδοποιήσεων με κατάσταση παράδοσης, και ενσωματώστε ειδοποιήσεις X σε πραγματικό χρόνο σε οποιοδήποτε σύστημα που «μιλάει» HTTP.

Γιατί να Χρησιμοποιήσετε το WALLAWHATS API;
Το dashboard λειτουργεί εξαιρετικά για χειροκίνητες ροές εργασίας, αλλά η πρόσβαση API ξεκλειδώνει σενάρια αυτοματισμού που κλιμακώνονται πέρα από τη διαχείριση από άνθρωπο:
Πλατφόρμες Πληροφοριών Πελατών: Αυτόματη συνδρομή σε νέους ανταγωνιστές executives, product leads, ή αναλυτές της βιομηχανίας καθώς ανακαλύπτονται μέσω εργαλείων έρευνας ή ενσωματώσεων CRM.
Trading και Οικονομικές Ροές Εργασίας: Προγραμματιστική παρακολούθηση ρυθμιστικών λογαριασμών, CEO handles, ή δημοσιογράφων ειδικών τομέων βάσει αλλαγών χαρτοφυλακίου ή γεγονότων της αγοράς—χωρίς χειροκίνητη διαχείριση συνδρομών.
Brand Monitoring σε Μεγάλη Κλίμακα: Προσθήκη ή αφαίρεση παρακολούθησης brand mentions καθώς ξεκινούν νέες καμπάνιες, κυκλοφορούν προϊόντα, ή αναπτύσσονται καταστάσεις κρίσης.
Multi-Tenant SaaS Εφαρμογές: White-label παρακολούθηση X σε πραγματικό χρόνο για τους πελάτες σας, με προγραμματιστική διαχείριση συνδρομών στο παρασκήνιο.
Συστήματα Συμμόρφωσης και Audit: Ανάκτηση πλήρους ιστορικού ειδοποιήσεων με κατάσταση παράδοσης για ρυθμιστικές αναφορές, εσωτερικά audit trails, ή παρακολούθηση SLA.
API Authentication και Πρόσβαση
Κάθε πρόγραμμα WALLAWHATS περιλαμβάνει πρόσβαση API με κλιμακωτές key quotas:
- Free: 1 API key
- Pro: 1 API key
- Pro+: 2 API keys
- Business: 5 API keys
- Enterprise: 20 API keys
Η αυθεντικοποίηση χρησιμοποιεί το header x-api-key (όχι Authorization: Bearer). Δημιουργήστε τα κλειδιά σας από την ενότητα API του dashboard, και χειριστείτε τα όπως passwords—φέρουν πλήρη δικαιώματα λογαριασμού.
curl -H "x-api-key: your_api_key_here" \
https://api.wallawhats.com/subscriptionsΚεντρικά API Endpoints
Το WALLAWHATS API παρέχει πέντε κύριες ομάδες πόρων για τη δημιουργία ενσωματώσεων:
Διαχείριση Συνδρομών
Δημιουργία νέας συνδρομής:
POST /subscriptions
Content-Type: application/json
x-api-key: your_api_key_here
{
"xUsername": "elonmusk"
}Λίστα όλων των συνδρομών:
GET /subscriptions
x-api-key: your_api_key_hereΑφαίρεση συνδρομής:
DELETE /subscriptions/elonmusk
x-api-key: your_api_key_hereΣημειώστε ότι το delete endpoint παίρνει το X handle ως path parameter—όχι internal subscription ID.
Ιστορικό Ειδοποιήσεων και Audit
Ανάκτηση ιστορικού ειδοποιήσεων με κατάσταση παράδοσης:
GET /notifications?from=1704067200000&to=1704153600000
x-api-key: your_api_key_hereΤο notifications endpoint επιστρέφει paginated αποτελέσματα με κάθε γραμμή να αντιπροσωπεύει μία ειδοποίηση που παραδόθηκε σε ένα κανάλι. Οι τιμές status περιλαμβάνουν:
queued: Η ειδοποίηση έγινε δεκτή, περιμένει παράδοσηsent: Αποστάλη στον πάροχο καναλιούdelivered: Επιβεβαιώθηκε η παραλαβή από τον προορισμόread: Ανοίχθηκε από τον παραλήπτη (μόνο WhatsApp, απαιτεί ενεργοποιημένες αποδείξεις ανάγνωσης)failed: Η προσπάθεια παράδοσης απέτυχε
Διαχείριση Καναλιών
Λίστα διαμορφωμένων καναλιών:
GET /channels
x-api-key: your_api_key_hereΠροσθήκη νέου καναλιού:
POST /channels
Content-Type: application/json
x-api-key: your_api_key_here
{
"type": "email",
"destination": "alerts@yourcompany.com"
}Αφαίρεση καναλιού:
DELETE /channels/channel_id_here
x-api-key: your_api_key_hereTweet Snapshots
Πρόσβαση στη γκαλερί snapshots:
GET /snapshots
x-api-key: your_api_key_hereΔιαγραφή συγκεκριμένου snapshot:
DELETE /snapshots/tweet_id_here
x-api-key: your_api_key_hereΔημιουργία Ενσωματώσεων: Παραδείγματα Κώδικα
Node.js Ενσωμάτωση
Εδώ είναι ένα Node.js παράδειγμα που προσθέτει συνδρομή και κάνει poll για νέες ειδοποιήσεις:
const axios = require('axios');
class WallaWhatsClient {
constructor(apiKey) {
this.apiKey = apiKey;
this.baseURL = 'https://api.wallawhats.com';
}
async addSubscription(xUsername) {
try {
const response = await axios.post(
`${this.baseURL}/subscriptions`,
{ xUsername },
{ headers: { 'x-api-key': this.apiKey } }
);
return response.data;
} catch (error) {
throw new Error(`Failed to add subscription: ${error.response?.data?.message || error.message}`);
}
}
async getNotifications(from, to, lastKey = null) {
try {
let url = `${this.baseURL}/notifications?from=${from}&to=${to}`;
if (lastKey) url += `&lastKey=${lastKey}`;
const response = await axios.get(url, {
headers: { 'x-api-key': this.apiKey }
});
return response.data;
} catch (error) {
throw new Error(`Failed to fetch notifications: ${error.response?.data?.message || error.message}`);
}
}
async listSubscriptions() {
try {
const response = await axios.get(
`${this.baseURL}/subscriptions`,
{ headers: { 'x-api-key': this.apiKey } }
);
return response.data;
} catch (error) {
throw new Error(`Failed to list subscriptions: ${error.response?.data?.message || error.message}`);
}
}
}
// Usage example
async function monitorCompetitor() {
const client = new WallaWhatsClient('your_api_key_here');
// Add a new subscription
await client.addSubscription('vercel');
console.log('Now monitoring @vercel');
// Check recent notifications
const oneDayAgo = Date.now() - (24 * 60 * 60 * 1000);
const notifications = await client.getNotifications(oneDayAgo, Date.now());
console.log(`Found ${notifications.items.length} recent alerts`);
notifications.items.forEach(notification => {
console.log(`${notification.xUsername}: ${notification.status} at ${notification.timestamp}`);
});
}Python Ενσωμάτωση
Για ροές εργασίας Python, εδώ είναι μία κλάση που χειρίζεται διαχείριση συνδρομών και polling ειδοποιήσεων:
import requests
import time
from datetime import datetime, timedelta
class WallaWhatsAPI:
def __init__(self, api_key):
self.api_key = api_key
self.base_url = 'https://api.wallawhats.com'
self.headers = {'x-api-key': api_key}
def add_subscription(self, x_username):
"""Add a new X account to monitor"""
response = requests.post(
f'{self.base_url}/subscriptions',
json={'xUsername': x_username},
headers=self.headers
)
response.raise_for_status()
return response.json()
def remove_subscription(self, x_username):
"""Remove an X account from monitoring"""
response = requests.delete(
f'{self.base_url}/subscriptions/{x_username}',
headers=self.headers
)
response.raise_for_status()
return response.status_code == 200
def get_notifications(self, from_ms, to_ms, last_key=None):
"""Fetch notification history with pagination"""
params = {'from': from_ms, 'to': to_ms}
if last_key:
params['lastKey'] = last_key
response = requests.get(
f'{self.base_url}/notifications',
params=params,
headers=self.headers
)
response.raise_for_status()
return response.json()
def get_all_notifications(self, from_ms, to_ms):
"""Fetch all notifications in a time range, handling pagination"""
all_notifications = []
last_key = None
while True:
batch = self.get_notifications(from_ms, to_ms, last_key)
all_notifications.extend(batch['items'])
if not batch.get('lastKey'):
break
last_key = batch['lastKey']
return all_notifications
def list_subscriptions(self):
"""Get all current subscriptions"""
response = requests.get(
f'{self.base_url}/subscriptions',
headers=self.headers
)
response.raise_for_status()
return response.json()
# Example: Daily audit report
def generate_daily_report():
api = WallaWhatsAPI('your_api_key_here')
# Get yesterday's notifications
end_time = int(time.time() * 1000)
start_time = end_time - (24 * 60 * 60 * 1000)
notifications = api.get_all_notifications(start_time, end_time)
# Group by account and status
report = {}
for notification in notifications:
account = notification['xUsername']
status = notification['status']
if account not in report:
report[account] = {'total': 0, 'delivered': 0, 'failed': 0}
report[account]['total'] += 1
if status in ['delivered', 'read']:
report[account]['delivered'] += 1
elif status == 'failed':
report[account]['failed'] += 1
# Print summary
print(f"Daily Alert Report - {datetime.now().strftime('%Y-%m-%d')}")
print("-" * 50)
for account, stats in report.items():
success_rate = (stats['delivered'] / stats['total']) * 100 if stats['total'] > 0 else 0
print(f"@{account}: {stats['total']} alerts, {success_rate:.1f}% delivered")Κατανόηση της Δρομολόγησης Καναλιών
Το WALLAWHATS χρησιμοποιεί μοντέλο γενικής δρομολόγησης καναλιών—κάθε ειδοποίηση από κάθε συνδρομή διαχέεται σε όλα τα ενεργοποιημένα και επιβεβαιωμένα κανάλια. Δεν μπορείτε να δρομολογήσετε συγκεκριμένους λογαριασμούς σε συγκεκριμένους προορισμούς μέσω του API (όπως «@elonmusk → WhatsApp, @vercel → email»).
Η επιλογή καναλιού γίνεται σε επίπεδο λογαριασμού στη σελίδα Channels. Όταν προσθέτετε ένα κανάλι μέσω API, γίνεται διαθέσιμο για όλες τις ειδοποιήσεις μόλις επιβεβαιωθεί. Όταν αφαιρείτε ένα κανάλι, σταματά να λαμβάνει ειδοποιήσεις από όλες τις συνδρομές.
Αυτή η σχεδίαση απλοποιεί την αυτοματοποίηση ενώ αποτρέπει την κατάτμηση ειδοποιήσεων. Ο κώδικας ενσωμάτωσής σας δεν χρειάζεται να παρακολουθεί κανόνες δρομολόγησης per-subscription—απλά διαχειριστείτε ποιους λογαριασμούς να παρακολουθείτε και ποια κανάλια να ενεργοποιήσετε.
Rate Limits και Velocity Caps
Το WALLAWHATS υλοποιεί velocity caps σε επίπεδο χρήστη για να αποτρέπει spam ειδοποιήσεων κατά τις περιόδους υψηλής δραστηριότητας:
- Free: 2 ειδοποιήσεις/ώρα
- Pro: 5 ειδοποιήσεις/ώρα
- Pro+: 15 ειδοποιήσεις/ώρα
- Business: 30 ειδοποιήσεις/ώρα
- Enterprise: 100 ειδοποιήσεις/ώρα
Όταν ξεπερνιούνται τα velocity caps, τα επιπλέον tweets αποθηκεύονται σε digest μηνύματα και παραδίδονται κάθε 15 λεπτά. Η ενσωμάτωση API θα τα δει ως ξεχωριστά notification records—ένα για την άμεση ειδοποίηση, και ένα για κάθε digest batch.
Το ίδιο το API δεν επιβάλλει ξεχωριστά rate limits στη διαχείριση συνδρομών ή τα ερωτήματα ειδοποιήσεων. Ωστόσο, αποφύγετε να «βομβαρδίζετε» τα endpoints με περιττά αιτήματα—κρατήστε τις λίστες συνδρομών τοπικά στην cache και κάντε batch τα ερωτήματα ειδοποιήσεων αποτελεσματικά.
Διαχείριση Σφαλμάτων και Αντιμετώπιση Προβλημάτων
Συνηθισμένα patterns σφαλμάτων API και τρόποι αντιμετώπισής τους:
Αστοχίες αυθεντικοποίησης (401):
- Επιβεβαιώστε ότι το API key σας είναι σωστό και δεν έχει ανακληθεί
- Βεβαιωθείτε ότι χρησιμοποιείτε το header
x-api-key, όχιAuthorization
Conflicts συνδρομών (409):
- Ο λογαριασμός παρακολουθείται ήδη: Η συνδρομή υπάρχει, θεωρήστε το επιτυχία
- Προστατευμένος/ιδιωτικός λογαριασμός: Το WALLAWHATS τους αρνείται by design
Rate limiting (429):
- Κάντε exponential back-off πριν επαναπροσπαθήσετε
- Ελέγξτε αν πλησιάζετε τα όρια του προγράμματός σας για παρακολουθούμενους λογαριασμούς
Προβλήματα επιβεβαίωσης καναλιών:
- Τα νέα κανάλια απαιτούν επιβεβαίωση OTP πριν λαμβάνουν ειδοποιήσεις
- Τα κανάλια που προστέθηκαν προγραμματιστικά δε θα λειτουργήσουν μέχρι ο χρήστης να ολοκληρώσει την επιβεβαίωση
Παρακολούθηση και Ειδοποιήσεις για τις Ενσωματώσεις Σας
Εφόσον το WALLAWHATS γίνεται κρίσιμη υποδομή όταν ενσωματώνεται σε επιχειρησιακές ροές εργασίας, παρακολουθήστε την υγεία της ενσωμάτωσης:
Ανίχνευση Παρεκκλίσεων Συνδρομών:
// Check if expected subscriptions are still active
async function auditSubscriptions(expectedHandles) {
const current = await client.listSubscriptions();
const currentHandles = current.map(s => s.xUsername);
const missing = expectedHandles.filter(h => !currentHandles.includes(h));
if (missing.length > 0) {
console.warn(`Missing subscriptions: ${missing.join(', ')}`);
}
return missing;
}Παρακολούθηση Ποσοστού Επιτυχούς Παράδοσης:
def check_delivery_health():
# Check last 6 hours
end_time = int(time.time() * 1000)
start_time = end_time - (6 * 60 * 60 * 1000)
notifications = api.get_all_notifications(start_time, end_time)
if not notifications:
return None
delivered = sum(1 for n in notifications if n['status'] in ['delivered', 'read'])
total = len(notifications)
success_rate = (delivered / total) * 100
if success_rate < 95:
# Alert your ops team
print(f"WARNING: Delivery success rate dropped to {success_rate:.1f}%")
return success_ratePatterns Ενσωμάτωσης και Βέλτιστες Πρακτικές
Επεξεργασία σε Στυλ Webhook: Ενώ το WALLAWHATS δεν παρέχει webhooks άμεσα, μπορείτε να κάνετε poll το notifications endpoint για νέες ειδοποιήσεις και να τις επεξεργάζεστε σχεδόν σε πραγματικό χρόνο:
async function pollForNewAlerts() {
const lastCheck = localStorage.getItem('lastNotificationCheck') || Date.now() - 300000;
const now = Date.now();
const notifications = await client.getNotifications(lastCheck, now);
for (const notification of notifications.items) {
if (notification.status === 'delivered') {
// Process the alert - send to Slack, update database, etc.
await processAlert(notification);
}
}
localStorage.setItem('lastNotificationCheck', now);
}
// Poll every 30 seconds
setInterval(pollForNewAlerts, 30000);Διαχείριση Υπό Όρους Συνδρομών: Δυναμική προσθήκη ή αφαίρεση συνδρομών βάσει εξωτερικών triggers:
def update_competitor_monitoring(portfolio_companies):
"""Update X monitoring based on current portfolio"""
current_subs = {s['xUsername'] for s in api.list_subscriptions()}
# Accounts we should be monitoring
target_accounts = set()
for company in portfolio_companies:
if company.get('ceo_twitter_handle'):
target_accounts.add(company['ceo_twitter_handle'])
if company.get('company_twitter_handle'):
target_accounts.add(company['company_twitter_handle'])
# Add missing subscriptions
for account in target_accounts - current_subs:
try:
api.add_subscription(account)
print(f"Started monitoring @{account}")
except Exception as e:
print(f"Failed to add @{account}: {e}")
# Remove outdated subscriptions
for account in current_subs - target_accounts:
api.remove_subscription(account)
print(f"Stopped monitoring @{account}")Το WALLAWHATS API μεταμορφώνει τις ειδοποιήσεις X σε πραγματικό χρόνο από ένα εργαλείο χειροκίνητου dashboard σε προγραμματιζόμενο στοιχείο υποδομής. Είτε δημιουργείτε προσαρμοσμένες ροές εργασίας intelligence, αυτοματοποιείτε την παρακολούθηση brand, είτε δημιουργείτε white-label υπηρεσίες ειδοποιήσεων, το API παρέχει τον έλεγχο και τις δυνατότητες audit που χρειάζονται για production integration.
Θέλετε να επεκτείνετε την παρακολούθησή σας πέρα από ανταγωνιστές; Δείτε τον οδηγό μας για παρακολούθηση crypto Twitter για σήματα αγοράς ή μάθετε πώς οι δημοσιογράφοι χρησιμοποιούν το WALLAWHATS για παρακολούθηση πηγών σε πραγματικό χρόνα.
Μη χάσετε ποτέ ξανά μία σημαντική ανάρτηση. Δημιουργήστε δωρεάν λογαριασμό — 1 αριθμός WhatsApp, ειδοποιήσεις σε πραγματικό χρόνο, χωρίς πιστωτική κάρτα.
