Node.js నుంచి WhatsApp పంపడం, స్వీకరించడం
స్వీకరించడానికి Meta ధృవీకరణ GETకు సమాధానం ఇచ్చే, POSTలను స్వీకరించే రూట్ అవసరం. పంపడానికి నంబర్కు చెందిన phone_number_id, టోకెన్తో Cloud APIకి ఫెచ్ కాల్ చేయండి. మా SDK లేదు, ఇన్స్టాల్ చేయాల్సిందేమీ లేదు.
Meta ధృవీకరణ కోసం GET, ఈవెంట్ల కోసం POST.
కస్టమర్ మెసేజ్ తర్వాత ఫ్రీ టెక్స్ట్ పంపగల సమయ విండో.
ఆ విండో వెలుపల ఫ్రీ టెక్స్ట్ పంపితే వచ్చే ఎర్రర్.
Nodeలో మెసేజ్లను ఎలా స్వీకరించాలి?
Express, Fastify, Next రూట్ హ్యాండ్లర్ లేదా సాధారణ సర్వర్లో రెండు మెథడ్లతో ఒక రూట్ చాలు.
Meta ధృవీకరణకు GET సమాధానం ఇస్తుంది: క్వెరీ నుంచి hub.mode, hub.verify_token, hub.challenge చదివి, టోకెన్ను మీ టోకెన్తో పోల్చి, challengeను సాదా టెక్స్ట్గా తిరిగి ఇవ్వండి. దాన్ని JSONగా పంపడం సాధారణ తప్పు. అప్పుడు ఎండ్పాయింట్ సరైనదిగా కనిపించినా ఏదీ స్వీకరించదు.
POST ఈవెంట్లను స్వీకరిస్తుంది. వెంటనే 200కి ప్రతిస్పందించి, తర్వాత ప్రాసెస్ చేయండి. నెమ్మదిగా ఉన్న దేనినైనా Meta మళ్లీ పంపుతుంది. సమాధానం ఇవ్వడానికి ముందు పని చేసే హ్యాండ్లర్కు అదే మెసేజ్ ఒకటికంటే ఎక్కువసార్లు కనిపిస్తుంది. ముఖ్యంగా సర్వర్లెస్లో ముందుగా సమాధానం ఇచ్చి, పనిని క్యూ చేయడమే కోల్డ్ స్టార్ట్ను డూప్లికేట్గా మారకుండా ఉంచుతుంది.
ఎలా పంపాలి?
phone_number_id కోసం Cloud API messages ఎండ్పాయింట్కు, టోకెన్ను bearer హెడర్గా పంపుతూ ఫెచ్ చేయండి.
ఇందులో మా ఉత్పత్తికి ప్రత్యేకమైనదేమీ లేదు. అందువల్ల అభ్యర్థన Meta సొంత డాక్యుమెంటేషన్తో అచ్చుగుద్దినట్లు సరిపోతుంది. నేర్చుకోవాల్సిన లేదా దానికే పరిమితం కావాల్సిన ర్యాపర్ లేదు. రెండు విలువలు డాష్బోర్డ్లో ఉంటాయి. అసిస్టెంట్ వైరింగ్ చేస్తుంటే MCP కనెక్టర్ ద్వారా get_api_credentials వాటిని అందిస్తుంది.
బాడీ సమయాన్ని బట్టి మారుతుంది. కస్టమర్ చివరి ఇన్బౌండ్ మెసేజ్ నుంచి 24 గంటల్లోపు text ఆబ్జెక్ట్ పంపండి. ఆ సమయం దాటితే, ఆమోదించిన టెంప్లేట్ పేరు మరియు భాషతో template ఆబ్జెక్ట్ పంపండి. కేవలం టెక్స్ట్ పంపే కోడ్ ప్రతి టెస్ట్లో ఉత్తీర్ణమైనా, రాత్రి వచ్చిన మొదటి మెసేజ్ వద్ద విఫలమవుతుంది.
సర్వర్లెస్లో ఏమి భిన్నంగా ఉంటుంది?
రెండు విషయాలు. రెండూ పని పూర్తికాకముందే ఫంక్షన్ ముగియడానికే సంబంధించినవి.
200కి సమాధానం ఇచ్చిన తర్వాత ప్రాసెస్ కొనసాగించడం, సమాధానం ఇచ్చిన క్షణమే నిలిచిపోయే ఫంక్షన్లో పనిచేయదు. మీ ప్లాట్ఫామ్ అందించే విధంగా సమాధానం తర్వాత కూడా పనిని కొనసాగించండి. లేదా పేలోడ్ను క్యూ మీదకు పంపి, వేరే ఫంక్షన్తో నిర్వహించండి. Metaకి త్వరగా అంగీకారం మాత్రమే అవసరం, పని పూర్తవడం కాదు.
కోల్డ్ స్టార్ట్లు నెమ్మదైన సమాధానాల అవకాశాన్ని కూడా పెంచుతాయి. దాంతో మరిన్ని రీట్రైలు, డూప్లికేట్లు వస్తాయి. wamid మెసేజ్ idతో డీడూప్లికేషన్ చేయడం ఐచ్ఛికం కాదు. ఈ నిర్మాణాన్ని నమ్మదగినదిగా చేసేది అదే.
సాధారణ పొరపాట్లు
- చాలెంజ్ను raw bodyగా కాకుండా JSONగా తిరిగి పంపడం.
- 200కి సమాధానం ఇవ్వకముందే పని చేయడం. సర్వర్లెస్లో సమాధానం ఇచ్చిన క్షణమే ఫంక్షన్ నిలిచిపోవచ్చు.
- డీడూప్లికేషన్ను వదిలేయడం. Meta ఉద్దేశపూర్వకంగా రీట్రైలు చేస్తుంది. డూప్లికేట్లు సాధారణమే, అరుదైన పరిస్థితి కాదు.
easycoexistence.comలో నంబర్ను కనెక్ట్ చేసి, మీ రూట్కు వెబ్హుక్ గమ్యాన్ని సెట్ చేయండి. డాష్బోర్డ్లో phone_number_id, టోకెన్ చూడండి. ప్రతి నంబర్కు నెలకు US$ 9 నుంచి, ఎక్కువ వాల్యూమ్లో US$ 2కు తగ్గుతుంది. మొదటి 7 రోజులు ఉచితం.
తరచుగా అడిగే ప్రశ్నలు
నాకు లైబ్రరీ అవసరమా?
లేదు. ఒక రూట్, ఫెచ్ చాలు. కాల్ Meta డాక్యుమెంటేషన్తో అచ్చుగుద్దినట్లు సరిపోతుంది.
ఇది Vercel లేదా Lambdaలో పనిచేస్తుందా?
అవును. సాధారణ సర్వర్లెస్ జాగ్రత్త పాటించండి: ముందుగా అంగీకరించి, తర్వాత ఇన్లైన్గా కాకుండా క్యూ లేదా బ్యాక్గ్రౌండ్ విధానం ద్వారా ప్రాసెస్ చేయండి.
అభ్యర్థన Meta నుంచే వచ్చిందని ఎలా ధృవీకరించాలి?
సిగ్నేచర్ హెడర్ను మీ యాప్ సీక్రెట్తో పోల్చి చూడండి. ఎండ్పాయింట్ పబ్లిక్ అయిన వెంటనే చేయడం మంచిది.
నేను TypeScript ఉపయోగించవచ్చా?
అవును. మా వైపు టైప్ చేయాల్సిందేమీ లేదు. పేలోడ్ Metaదే, దాని డాక్యుమెంటేషన్ కూడా Metaదే.
చదవడం కొనసాగించండి
ప్రారంభించడానికి సిద్ధంగా ఉన్నారా?
నెలల్లో కాదు, నిమిషాల్లో WhatsApp Coexistence సెటప్ చేయండి. యాప్ ఫోన్లో పనిచేస్తూనే ఉంటుంది.
ఉచిత ట్రయల్ ప్రారంభించండిధృవీకరించిన తేదీ