Pythonతో WhatsApp మెసేజ్లు పంపడం, స్వీకరించడం
మీ వెబ్ ఫ్రేమ్వర్క్లోని ఒక రూట్ Meta ధృవీకరణ GETకు ప్రతిస్పందించి, POSTలను స్వీకరిస్తుంది. పంపడానికి నంబర్కి చెందిన phone_number_id, టోకెన్తో Cloud APIకి HTTPS అభ్యర్థన పంపాలి. మా SDK అవసరం లేదు, ఇన్స్టాల్ చేయాల్సింది ఏదీ లేదు.
Meta ధృవీకరణ కోసం GET, ఈవెంట్ల కోసం POST. ఇదే స్వీకరణ భాగం.
కస్టమర్ మెసేజ్ పంపిన తర్వాత సాధారణ టెక్స్ట్ పంపగలిగే విండో.
ఆ విండో వెలుపల సాధారణ టెక్స్ట్ పంపితే వచ్చే లోపం.
Pythonలో మెసేజ్లను ఎలా స్వీకరించాలి?
మీరు ఇప్పటికే ఉపయోగిస్తున్న ఏ ఫ్రేమ్వర్క్లోనైనా, ఒకే రూట్పై రెండు హ్యాండ్లర్లతో చేయవచ్చు.
GET హ్యాండ్లర్ Meta ధృవీకరణకు ప్రతిస్పందిస్తుంది. ఇది క్వెరీ స్ట్రింగ్ నుంచి hub.mode, hub.verify_token, hub.challengeలను చదివి, టోకెన్ను మీ టోకెన్తో సరిపోల్చి, challengeను రా బాడీగా తిరిగి ఇస్తుంది. ఇక్కడ JSON తిరిగి ఇవ్వడం అత్యంత సాధారణ తప్పు, అది నిశ్శబ్దంగా విఫలమవుతుంది.
POST హ్యాండ్లర్ ఈవెంట్లను స్వీకరిస్తుంది. వెంటనే 200 తిరిగి ఇచ్చి, ఆ తర్వాత పని చేయండి. ఆలస్యమైన ప్రతిస్పందనను Meta వైఫల్యంగా భావించి మళ్లీ పంపుతుంది, దాంతో అదే మెసేజ్ను రెండుసార్లు నిర్వహించాల్సి వస్తుంది. ప్రాసెసింగ్ను inlineగా చేయకుండా, క్యూలో పెట్టండి లేదా బ్యాక్గ్రౌండ్ టాస్క్కు అప్పగించండి.
మెసేజ్లు wamid మెసేజ్ idతో వస్తాయి. మొదటి నుంచే దాని ఆధారంగా డూప్లికేట్లను తొలగించడం మంచిది, ఎందుకంటే రీట్రైలు సాధారణమే, అసాధారణం కాదు.
ఎలా పంపాలి?
బేరర్ టోకెన్తో, phone_number_id కోసం Cloud API messages ఎండ్పాయింట్కు ఒక POST పంపాలి.
రెండు విలువలూ కనెక్షన్ నుంచి వస్తాయి. డాష్బోర్డ్లో అవి కనిపిస్తాయి, లేదా అసిస్టెంట్ వాటిని తెచ్చుకోవాలనుకుంటే get_api_credentials వాటిని తిరిగి ఇస్తుంది. ఈ కాల్లో మా ప్రత్యేకత ఏదీ లేదు. ఏ HTTP లైబ్రరీ అయినా పనిచేస్తుంది, అభ్యర్థన Meta సొంత డాక్యుమెంటేషన్లో ఉన్నట్లే ఉంటుంది.
సమయాన్ని బట్టి బాడీ మారుతుంది. కస్టమర్ చివరి మెసేజ్ పంపిన 24 గంటల్లో text ఆబ్జెక్ట్ పంపాలి. ఆ సమయం దాటితే, ఆమోదించిన టెంప్లేట్ పేరు, దాని భాషతో template ఆబ్జెక్ట్ పంపాలి. మొదటి ఆకృతి మాత్రమే తెలిసిన క్లయింట్ టెస్టింగ్లో సరిగ్గా పనిచేసి, మొదటి రాత్రి దాటిన మెసేజ్ వద్ద విఫలమవుతుంది, 131047 ఎర్రర్ కోడ్ను తిరిగి ఇస్తుంది.
దానికి మించి ప్రొడక్షన్ హ్యాండ్లర్కు ఏమి అవసరం?
తర్వాత చేర్చడం కష్టంగా, ఖరీదుగా మారే మూడు సులభంగా మానేసే విషయాలు ఉన్నాయి.
Meta రీట్రైలు చేస్తుంది కాబట్టి మెసేజ్ id ఆధారంగా డూప్లికేట్లను తొలగించండి. మీ URL బహిరంగంగా అందుబాటులో ఉంటే, ఎవరైనా దానికి POST చేయగలరు కాబట్టి అభ్యర్థన సిగ్నేచర్ను ధృవీకరించండి. అలాగే కాంటాక్ట్ చివరిసారి ఎప్పుడు రాశారో చూసి, మనిషి నిర్ణయించకుండా send మార్గం text లేదా templateను ఎంచుకునేలా చేయండి.
వీటికి ఫ్రేమ్వర్క్ లేదా లైబ్రరీ ఏదీ అవసరం లేదు. ఇవి ఒక సెట్, ఒక చెక్, ఒక పోలిక మాత్రమే. మొదటి క్లయింట్ రాకముందే వీటిని సిద్ధం చేయడం వల్ల ఇంటిగ్రేషన్ నిశ్శబ్దంగా నడుస్తుంది, లేకపోతే అది మీకు అలర్ట్లు పంపుతూనే ఉంటుంది.
సాధారణ పొరపాట్లు
- ధృవీకరణ GETలో రా challenge విలువకు బదులుగా JSON తిరిగి ఇవ్వడం.
- 200 తిరిగి ఇచ్చే ముందు inlineగా ప్రాసెస్ చేయడం. Meta నెమ్మదైన ప్రతిస్పందనలను మళ్లీ పంపుతుంది, దాంతో మెసేజ్ను రెండుసార్లు నిర్వహిస్తారు.
- విండోను తనిఖీ చేయకుండా సాధారణ టెక్స్ట్ పంపడం. 131047 వస్తుంది, ఏమీ జరగనట్లుగా కనిపిస్తుంది.
easycoexistence.comలో నంబర్ను కనెక్ట్ చేసి, మీ రూట్ను వెబ్హుక్ గమ్యస్థానంగా సెట్ చేయండి. డాష్బోర్డ్ నుంచి phone_number_id, టోకెన్ తీసుకోండి. నెలకు ఒక్కో నంబర్కు US$ 9 నుంచి, ఎక్కువ పరిమాణంలో US$ 2కి తగ్గుతుంది. మొదటి 7 రోజులు ఉచితం.
తరచుగా అడిగే ప్రశ్నలు
Python SDK ఉందా?
మా నుంచి లేదు, మీకు అది అవసరం కూడా లేదు. API Metaది, డాక్యుమెంటేషన్ Meta అందిస్తుంది, ఏ HTTP లైబ్రరీతోనైనా దీన్ని ఉపయోగించవచ్చు.
ఏ ఫ్రేమ్వర్క్ ఉపయోగించాలి?
ఏదైనా ఉపయోగించండి. GETకు ప్రతిస్పందించి POSTను స్వీకరించే రూట్ అవసరం, ప్రతి Python వెబ్ ఫ్రేమ్వర్క్లో ఇది ఉంటుంది.
మెసేజ్ను రెండుసార్లు నిర్వహించకుండా ఎలా ఉండాలి?
పేలోడ్లోని wamid మెసేజ్ id ఆధారంగా డూప్లికేట్లను తొలగించండి. Meta ఉద్దేశపూర్వకంగానే రీట్రైలు చేస్తుంది, కాబట్టి ఇది ఎడ్జ్ కేస్ కాదు.
టీమ్ ఇప్పటికీ ఫోన్ను ఉపయోగించగలదా?
అవును. Coexistence అదే నంబర్పై WhatsApp Business యాప్ను పనిచేయనిస్తుంది, మీరు ఏర్పాటు చేసిన హ్యాండ్లర్ వారు పంపినదాన్ని ఎకో ఈవెంట్గా చూస్తుంది.
చదవడం కొనసాగించండి
ప్రారంభించడానికి సిద్ధంగా ఉన్నారా?
నెలల్లో కాదు, నిమిషాల్లో WhatsApp Coexistence సెటప్ చేయండి. యాప్ ఫోన్లో పనిచేస్తూనే ఉంటుంది.
ఉచిత ట్రయల్ ప్రారంభించండిధృవీకరించిన తేదీ