· Nacho Coll · Guides · 7 min lukuaika
X-hälytykset API: Ohjelmallinen tilaukset ja ilmoitushistoria
Rakenna mukautettuja integraatioita WALLAWHATS:in päälle. Lisää ja poista X-tilauksia, reitittää hälytykset kanaviin, hae ilmoitushistoriaa — kaikki REST:n kautta.

Kun reaaliaikaiset X (Twitter) -hälytykset muuttuvat liiketoiminnallesi kriittisiksi, manuaalinen hallintapaneelin hallinta törmää seinään. Rakennatpa asiakastietoälykkyydashboardeja, automatisoit brändin seuranta -työnkulkuja tai luot mukautettuja ilmoitusjärjestelmiä kaupankäyntipöydille, tarvitset ohjelmallist kontrollia X-hälytysten tilauksistasi.
WALLAWHATS tarjoaa REST API:n, jolla voit luoda, hallita ja auditoida X-hälytysten tilauksia koskematta web-käyttöliittymään. Lisää tai poista seurattavia tilejä, hae ilmoitushistoriaa toimitustiloineen ja integroi reaaliaikaiset X-hälytykset mihin tahansa järjestelmään, joka puhuu HTTP:tä.

Miksi käyttää WALLAWHATS API:a?
Dashboard toimii loistavasti manuaalisiin työnkulkuihin, mutta API-käyttöoikeus avaa automatisointiskenaarioita, jotka skaalautuvat ihmishallinnan ulkopuolelle:
Asiakastietoälykkyyden alustat: Automaattisesti tilaa äskettäin tunnistetut kilpailijan johtajat, tuotepäälliköt tai toimiala-analyytikot sitä mukaa, kun heidät löydetään tutkimustyökalujen tai CRM-integraatioiden kautta.
Kaupankäynti ja rahoituksen työnkulut: Ohjelmallisesti seuraa sääntelyviranomaisten tilejä, toimitusjohtajien kahvoja tai sektorikohtaisia toimittajia perustuen salkun muutoksiin tai markkinatapahtumiin — ilman manuaalista tilaustenhallintaa.
Brändin seuranta laajassa mittakaavassa: Lisää tai poista brändin mainintojen seuranta uusien kampanjoiden käynnistyessä, tuotteiden lanseerauksissa tai kriisitilanteiden kehittyessä.
Monivuokraalaiset SaaS-sovellukset: White-label reaaliaikaista X-seurantaa asiakkaillesi ohjelmallisella tilauksenhallinnalla kulissien takana.
Compliance- ja auditointijärjestelmät: Hae täydellinen ilmoitushistoria toimitustatuksineen sääntelyraportteihin, sisäisiin auditointijälkiin tai SLA-seurantaan.
API-todennus ja käyttöoikeus
Jokaiseen WALLAWHATS-pakettiin sisältyy API-käyttöoikeus skaalautuvilla avainkiintiöillä:
- Free: 1 API-avain
- Pro: 1 API-avain
- Pro+: 2 API-avainta
- Business: 5 API-avainta
- Enterprise: 20 API-avainta
Todennus käyttää x-api-key-headeria (ei Authorization: Bearer). Luo avaimesi hallintapaneelin API-osiosta ja kohtele niitä salasanoina — ne kantavat täydet tilin käyttöoikeudet.
curl -H "x-api-key: your_api_key_here" \
https://api.wallawhats.com/subscriptionsTärkeimmät API-päätepisteet
WALLAWHATS API tarjoaa viisi pääresurssiryhmää integraatioiden rakentamiseen:
Tilausten hallinta
Luo uusi tilaus:
POST /subscriptions
Content-Type: application/json
x-api-key: your_api_key_here
{
"xUsername": "elonmusk"
}Listaa kaikki tilaukset:
GET /subscriptions
x-api-key: your_api_key_herePoista tilaus:
DELETE /subscriptions/elonmusk
x-api-key: your_api_key_hereHuomaa, että poisto-päätepiste ottaa X-kahvan polkuparametrina — ei sisäistä tilaus-ID:tä.
Ilmoitushistoria ja auditointi
Hae ilmoitushistoria toimitustatuksineen:
GET /notifications?from=1704067200000&to=1704153600000
x-api-key: your_api_key_hereIlmoitusten päätepiste palauttaa sivutettuja tuloksia, joissa jokainen rivi edustaa yhtä hälytystä, joka on toimitettu yhteen kanavaan. Tilat sisältävät:
queued: Hälytys hyväksytty, odottaa toimitustasent: Lähetetty kanavan tarjoajalledelivered: Vahvistettu vastaanotetuksi kohteessaread: Avattu vastaanottajan toimesta (vain WhatsApp, vaatii lukukuittausten olevan käytössä)failed: Toimitusyritys epäonnistunut
Kanavien hallinta
Listaa konfiguroidut kanavat:
GET /channels
x-api-key: your_api_key_hereLisää uusi kanava:
POST /channels
Content-Type: application/json
x-api-key: your_api_key_here
{
"type": "email",
"destination": "alerts@yourcompany.com"
}Poista kanava:
DELETE /channels/channel_id_here
x-api-key: your_api_key_hereTweet-tilannekuvat
Käytä tilannekuvagalleriaa:
GET /snapshots
x-api-key: your_api_key_herePoista tietty tilannekuva:
DELETE /snapshots/tweet_id_here
x-api-key: your_api_key_hereIntegraatioiden rakentaminen: Koodiesimerkit
Node.js integraatio
Tässä on Node.js-esimerkki, joka lisää tilauksen ja pollaa uusia ilmoituksia:
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}`);
}
}
}
// Käyttöesimerkki
async function monitorCompetitor() {
const client = new WallaWhatsClient('your_api_key_here');
// Lisää uusi tilaus
await client.addSubscription('vercel');
console.log('Nyt seurataan @vercel');
// Tarkista viimeaikaiset ilmoitukset
const oneDayAgo = Date.now() - (24 * 60 * 60 * 1000);
const notifications = await client.getNotifications(oneDayAgo, Date.now());
console.log(`Löytyi ${notifications.items.length} viimeaikaista hälytystä`);
notifications.items.forEach(notification => {
console.log(`${notification.xUsername}: ${notification.status} klo ${notification.timestamp}`);
});
}Python integraatio
Python-työnkulkuille, tässä on luokka, joka hoitaa tilausten hallinnan ja ilmoitusten pollauksen:
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):
"""Lisää uusi X-tili seurattavaksi"""
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):
"""Poista X-tili seurannasta"""
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):
"""Hae ilmoitushistoria sivutuksella"""
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):
"""Hae kaikki ilmoitukset aikaväliltä, sivutus käsiteltynä"""
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):
"""Hae kaikki nykyiset tilaukset"""
response = requests.get(
f'{self.base_url}/subscriptions',
headers=self.headers
)
response.raise_for_status()
return response.json()
# Esimerkki: Päivittäinen auditointiraportti
def generate_daily_report():
api = WallaWhatsAPI('your_api_key_here')
# Hae eilisen ilmoitukset
end_time = int(time.time() * 1000)
start_time = end_time - (24 * 60 * 60 * 1000)
notifications = api.get_all_notifications(start_time, end_time)
# Ryhmittele tilin ja tilan mukaan
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
# Tulosta yhteenveto
print(f"Päivittäinen hälytysten raportti - {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']} hälytystä, {success_rate:.1f}% toimitettu")Kanavien reitityksen ymmärtäminen
WALLAWHATS käyttää globaalia kanavan reititysmallia — jokainen hälytys jokaisesta tilauksesta haarautuu kaikkiin käytössä oleviin ja vahvistettuihin kanaviin. Et voi reitittää tiettyjä tilejä tiettyihin kohteisiin API:n kautta (kuten “@elonmusk → WhatsApp, @vercel → sähköposti”).
Kanavien valinta tapahtuu tilin tasolla Kanavat-sivulla. Kun lisäät kanavan API:n kautta, se tulee saataville kaikille hälytyksille vahvistuksen jälkeen. Kun poistat kanavan, se lopettaa hälytysten vastaanottamisen kaikista tilauksista.
Tämä suunnittelu yksinkertaistaa automatisointia ja estää hälytysten pirstoutumisen. Sinun integraatiokoodisi ei tarvitse seurata tilauskohtaisia reitityshääntöjä — hallitse vain mitä tilejä seurata ja mitkä kanavat ottaa käyttöön.
Nopeusrajat ja kiintiöt
WALLAWHATS toteuttaa käyttäjätason nopeusmitat estääkseen hälytysroskan korkean aktiivisuuden jaksojen aikana:
- Free: 2 hälytystä/tunti
- Pro: 5 hälytystä/tunti
- Pro+: 15 hälytystä/tunti
- Business: 30 hälytystä/tunti
- Enterprise: 100 hälytystä/tunti
Kun kiintiöt ylittyvät, ylimääräiset tweetit puskuroidaan tiivisteviesteihin ja toimitetaan 15 minuutin välein. API-integraatiosi näkee nämä erillisinä ilmoitustietueina — yhden välittömälle hälytykselle ja yhden jokaiselle tiivisteerälle.
API itsessään ei aseta erillisiä nopeusrajoja tilausten hallinnalle tai ilmoituskyselyille. Vältä kuitenkin päätepisteiden hakkausta tarpeettomilla pyynnöillä — välimuistita tilauslistat paikallisesti ja eräkäsittele ilmoituskyselyt tehokkaasti.
Virheiden käsittely ja vianmääritys
Yleisiä API-virhemalleja ja kuinka käsitellä niitä:
Todennusvirheet (401):
- Tarkista, että API-avaimesi on oikea eikä ole peruutettu
- Varmista, että käytät
x-api-key-headeria, eiAuthorization
Tilauskonfliktit (409):
- Tili jo seurannassa: Tilaus on olemassa, käsittele onnistumisena
- Tili suojattu/yksityinen: WALLAWHATS kieltäytyy näistä suunnittelun mukaan
Nopeusrajat (429):
- Keskeytä eksponentiaalisesti ennen uudelleenyritystä
- Tarkista lähestytkö pakettirajoja seurattavissa tileissä
Kanavan vahvistusongelmat:
- Uudet kanavat vaativat OTP-vahvistuksen ennen hälytysten vastaanottoa
- Ohjelmallisesti lisätyt kanavat eivät toimi ennen kuin käyttäjä suorittaa vahvistuksen
Integraatioidesi seuranta ja hälyttäminen
Koska WALLAWHATS muuttuu kriittiseksi infrastruktuuriksi liiketoiminnan työnkulkuihin integroituna, seuraa integraatiosi terveyttä:
Tilaussiirtymien tunnistus:
// Tarkista, että odotetut tilaukset ovat edelleen aktiivisia
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(`Puuttuvat tilaukset: ${missing.join(', ')}`);
}
return missing;
}Toimituksen onnistumisasteen seuranta:
def check_delivery_health():
# Tarkista viimeiset 6 tuntia
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:
# Hälytä ops-tiimillesi
print(f"VAROITUS: Toimituksen onnistumisaste putosi {success_rate:.1f}%:iin")
return success_rateIntegraatiomalleja ja parhaita käytäntöjä
Webhook-tyylinen käsittely: Vaikka WALLAWHATS ei tarjoa webhookkeja suoraan, voit pollaata ilmoitusten päätepistettä uusien hälytysten hakemiseksi ja käsitellä niitä lähes reaaliajassa:
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') {
// Käsittele hälytys - lähetä Slackiin, päivitä tietokanta, jne.
await processAlert(notification);
}
}
localStorage.setItem('lastNotificationCheck', now);
}
// Pollaa 30 sekunnin välein
setInterval(pollForNewAlerts, 30000);Ehdollinen tilausten hallinta: Lisää tai poista tilauksia dynaamisesti ulkoisten laukaisimien perusteella:
def update_competitor_monitoring(portfolio_companies):
"""Päivitä X-seuranta nykyisen salkun perusteella"""
current_subs = {s['xUsername'] for s in api.list_subscriptions()}
# Tilit, joita meidän tulisi seurata
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'])
# Lisää puuttuvat tilaukset
for account in target_accounts - current_subs:
try:
api.add_subscription(account)
print(f"Aloitettu @{account} seuranta")
except Exception as e:
print(f"@{account} lisääminen epäonnistui: {e}")
# Poista vanhentuneet tilaukset
for account in current_subs - target_accounts:
api.remove_subscription(account)
print(f"Lopetettu @{account} seuranta")WALLAWHATS API muuttaa reaaliaikaiset X-hälytykset manuaalisesta dashboard-työkalusta ohjelmoitavaksi infrastruktuurikomponentiksi. Rakennatpa mukautettuja tietotyönkulkuja, automatisoit brändin seurantaa tai luot white-label -ilmoituspalveluita, API tarjoaa tuotantointegraatioon tarvittavan kontrollin ja auditointikyvyt.
Haluatko laajentaa seurantaasi kilpailijoiden ulkopuolelle? Tutustu oppaaseemme crypto Twitter -seurantaan markkinasignaaleille tai opi kuinka toimittajat käyttävät WALLAWHATS:ia reaaliaikaiseen lähteiden seurantaan.
Älä koskaan jää paitsi tärkeästä julkaisusta. Luo ilmainen tili — 1 WhatsApp-numero, reaaliaikaiset hälytykset, luottokortia ei tarvita.
