WhatsApp వెబ్హుక్ ఎండ్పాయింట్ను ధృవీకరించడం
ఏదైనా ఈవెంట్ను డెలివర్ చేయడానికి ముందు, Meta hub.mode, hub.verify_token మరియు hub.challenge కలిగిన GET అభ్యర్థనను మీ ఎండ్పాయింట్కు పంపుతుంది. మీ ఎండ్పాయింట్ టోకెన్ను సరిపోల్చి, చాలెంజ్ను raw bodyగా తిరిగి పంపాలి. వేరే ఏదైనా పంపితే డెలివరీ ఎప్పటికీ ప్రారంభం కాదు.
ప్రతిస్పందన బాడీగా తిరిగి పంపాల్సిన విలువ.
ధృవీకరణ అభ్యర్థనలో hub.mode విలువ.
Meta ధృవీకరించే ఏకైక స్కీమ్. HTTP కాల్కు ముందే తిరస్కరించబడుతుంది.
Meta ఖచ్చితంగా ఏమి పంపుతుంది?
మీ URLకు మూడు query parametersతో GET అభ్యర్థన వస్తుంది. hub.mode విలువ subscribeగా ఉంటుంది. గమ్యాన్ని సెటప్ చేసేటప్పుడు మీరు కాన్ఫిగర్ చేసిన టోకెన్నే hub.verify_token కలిగి ఉంటుంది. ఈ ప్రయత్నం కోసం Meta రూపొందించిన విలువ hub.challengeలో ఉంటుంది.
మీ ఎండ్పాయింట్ hub.verify_tokenను మీరు ఎంచుకున్న టోకెన్తో సరిపోల్చాలి. సరిపోతే, 200తో hub.challengeను మొత్తం ప్రతిస్పందన బాడీగా పంపండి. దాన్ని JSONలో చుట్టకండి, చుట్టూ quotes పెట్టకండి, కొన్ని ఫ్రేమ్వర్క్లు డిఫాల్ట్గా జోడించే చివరి newline కూడా ఉండకూడదు.
టోకెన్ సరిపోకపోతే 403తో ప్రతిస్పందించండి. ఇదే మొత్తం ప్రోటోకాల్, దీన్ని ఉద్దేశపూర్వకంగా చిన్నగా ఉంచారు.
తప్పు జవాబు ఎందుకు నిశ్శబ్దంగా విఫలమవుతుంది?
ఎందుకంటే ధృవీకరణ విఫలమవడం మీ సిస్టమ్లోని లోపం కాదు, Meta సిస్టమ్లో డెలివరీ లేకపోవడం.
చాలెంజ్ను సరిగ్గా తిరిగి పంపకపోతే, Meta ఆ గమ్యానికి డెలివరీని ప్రారంభించదు. ధృవీకరణకు మీ సర్వర్ 200 పంపుతుంది, అభ్యర్థన వచ్చినట్లు మీ లాగ్లు చూపుతాయి, కానీ ఏ డాష్బోర్డ్లోనూ సమస్య కనిపించదు. మెసేజ్లు రాకపోవడమే ఏకైక లక్షణం. చాలామంది దీన్ని హ్యాండ్షేక్ సమస్యగా కాకుండా Coexistence సమస్యగా గుర్తిస్తారు.
అందుకే కాల్కు ముందే ధృవీకరించడం విలువైనది. Graph అభ్యర్థన పంపే ముందు URL HTTPSలో ఉందని, verify token ఇచ్చారని మేము తనిఖీ చేస్తాము. దాంతో తప్పుగా ఉన్న గమ్యం కనెక్ట్ అయినట్లు కనిపించకుండా వెంటనే విఫలమవుతుంది.
ధృవీకరణను ఇంకేమి అడ్డుకోవచ్చు?
కోడ్తో సంబంధం లేని మూడు విషయాలు ఉన్నాయి.
ఎండ్పాయింట్ ముందు ఆథెంటికేషన్ ఉండటం. గేట్వే, బేసిక్ ఆత్ లేయర్ లేదా IP allowlist Meta అభ్యర్థనను తిరస్కరిస్తాయి. Meta వద్ద పంపడానికి ఆధారాలు లేవు. ధృవీకరణ రూట్ వాటి అవసరం లేకుండా అందుబాటులో ఉండాలి.
రిడైరెక్ట్. Meta మీరు ఇచ్చిన URLకే కాల్ చేస్తుంది. canonical hostకు 301 రిడైరెక్ట్ జరిగినా హ్యాండ్షేక్ పూర్తయ్యేలా దాన్ని అనుసరించదు. తుది URLనే ఇవ్వండి.
మరియు ప్రతిస్పందనను సీరియలైజ్ చేసే ఫ్రేమ్వర్క్. ప్రతిదాన్ని JSONలో చుట్టే హ్యాండ్లర్ నుంచి స్ట్రింగ్ పంపితే, బాడీలో చాలెంజ్ చుట్టూ quotes వస్తాయి. అప్పుడు అది సరిపోలదు.
సాధారణ పొరపాట్లు
- JSONను తిరిగి పంపడం. బాడీలో చుట్టూ ఏమీ లేకుండా raw challenge విలువ మాత్రమే ఉండాలి.
- ఎండ్పాయింట్ను ఆథెంటికేషన్ వెనుక ఉంచడం. Meta వద్ద ఆధారాలు లేవు, కాబట్టి అభ్యర్థన తిరస్కరించబడుతుంది.
- రిడైరెక్ట్ అయ్యే URLను Metaకు ఇవ్వడం. తుది URLనే ఉపయోగించండి.
Metaకు కాల్ చేయడానికి ముందు గమ్యం HTTPSలో ఉందో, verify token ఉందో EasyCoexistence తనిఖీ చేస్తుంది. విఫలమైన హ్యాండ్షేక్ను కనెక్షన్ టైమ్లైన్లో నమోదు చేస్తుంది.
తరచుగా అడిగే ప్రశ్నలు
నేను ఏ టోకెన్ ఉపయోగించాలి?
మీరు ఎంచుకునే ఏ స్ట్రింగ్ అయినా ఉపయోగించవచ్చు. URL తెలిసిన మరెవరైనా పంపిన అభ్యర్థన నుంచి Meta అభ్యర్థనను మీ ఎండ్పాయింట్ గుర్తించడానికి ఇది ఉంటుంది.
ధృవీకరణ ఎంత తరచుగా జరుగుతుంది?
సెటప్ సమయంలో, అలాగే గమ్యాన్ని సెట్ చేసిన ప్రతిసారీ జరుగుతుంది. పనిచేసే ఎండ్పాయింట్ ప్రతి ఈవెంట్కు మళ్లీ ధృవీకరించబడదు.
నేనే దీన్ని పరీక్షించవచ్చా?
అవును. మూడు parametersతో మీ ఎండ్పాయింట్కు కాల్ చేసి, బాడీలో challenge విలువ అచ్చంగా తిరిగి వస్తుందో తనిఖీ చేయండి.
ధృవీకరణ సమయంలో నా సర్వర్ డౌన్గా ఉంటే?
హ్యాండ్షేక్ విఫలమవుతుంది, గమ్యం యాక్టివేట్ కాదు. దాన్ని మళ్లీ సేవ్ చేస్తే ధృవీకరణ తిరిగి నడుస్తుంది.
చదవడం కొనసాగించండి
ప్రారంభించడానికి సిద్ధంగా ఉన్నారా?
నెలల్లో కాదు, నిమిషాల్లో WhatsApp Coexistence సెటప్ చేయండి. యాప్ ఫోన్లో పనిచేస్తూనే ఉంటుంది.
ఉచిత ట్రయల్ ప్రారంభించండిధృవీకరించిన తేదీ