Meta Tech Provider

Node.js වෙතින් WhatsApp පණිවිඩ යවා ලබාගන්න

ලබාගැනීම යනු Metaගේ සත්‍යාපන GET එකට පිළිතුරු දී POST ඉල්ලීම් පිළිගන්නා route එකකි. යැවීම යනු අංකයේ `phone_number_id` සහ token එක සමඟ Cloud API වෙත fetch call එකකි. අපගේ SDK එකක් හෝ ස්ථාපනය කිරීමට දෙයක් නැත.

2 handlers

Metaගේ සත්‍යාපනය සඳහා GET එකක් සහ events සඳහා POST එකක්.

24 hours

පාරිභෝගික පණිවිඩයකින් පසු free text යැවිය හැකි කාල කවුළුව.

131047

එම කවුළුවෙන් පිටත free text යැවූ විට ලැබෙන දෝෂය.

Node තුළ පණිවිඩ ලබාගන්නේ කෙසේද?

Express, Fastify, Next route handler එකක හෝ සාමාන්‍ය server එකක, methods දෙකක් සහිත එක් route එකක් භාවිත කරන්න.

GET එකෙන් Metaගේ සත්‍යාපනයට පිළිතුරු දෙන්න: query එකෙන් hub.mode, hub.verify_token සහ hub.challenge කියවා, token එක ඔබගේ token එක සමඟ සසඳා, challenge එක plain text ලෙස ආපසු දෙන්න. එය JSON ලෙස ආපසු දීම සාමාන්‍ය වැරැද්දකි. එවිට නිවැරදි ලෙස පෙනුණත් කිසිවක් නොලැබෙන endpoint එකක් සෑදේ.

POST එකෙන් events ලබාගන්න. වහාම 200 ප්‍රතිචාරය ලබා දී, පසුව process කරන්න. මන්දගාමී ඕනෑම දෙයක් Meta නැවත උත්සාහ කරයි. පිළිතුරු දීමට පෙර වැඩ කරන handler එකකට එකම පණිවිඩය එක් වරකට වඩා ලැබේ. විශේෂයෙන් serverless පරිසරයක, පළමුව පිළිතුරු දී වැඩ queue කිරීමෙන් cold start එකක් duplicate එකක් බවට පත්වීම වළක්වයි.

යවන්නේ කෙසේද?

token එක bearer header එකක් ලෙස යොදා, දුරකථන අංකයේ `phone_number_id` සඳහා Cloud API messages endpoint එකට fetch එකක් යවන්න.

මෙහි කිසිවක් අපට විශේෂ නොවන නිසා request එක Metaගේම documentation එකට හරියටම ගැළපේ. ඉගෙනගත යුතු wrapper එකක් හෝ එයට බැඳී සිටීමක් නැත. අගයන් දෙකම dashboard එකේ ඇත. සහායකයෙක් wiring කරන විට get_api_credentials ඒවා MCP connector එක හරහා ලබා දෙයි.

Body එක වේලාව මත රඳා පවතී. පාරිභෝගිකයාගේ අවසන් inbound පණිවිඩයෙන් පැය 24ක් ඇතුළත text object එකක් යවන්න. ඉන් පිටත approved template name එකක් සහ language එකක් සහිත template object එකක් යවන්න. text පමණක් යවන code එක සෑම පරීක්ෂණයක්ම සමත් වුවත්, රාත්‍රියේ ලැබෙන පළමු පණිවිඩයෙන් අසාර්ථක වේ.

serverless පරිසරයක වෙනස කුමක්ද?

කරුණු දෙකක් ඇත. දෙකම සම්බන්ධ වන්නේ වැඩ අවසන් වීමට පෙර function එක අවසන් වීම ගැනය.

200 ආපසු දී පසුව process කිරීම, පිළිතුරු දුන් මොහොතේම freeze වන function එකක පවතින්නේ නැත. පිළිතුරෙන් පසු වැඩ සජීවීව තබා ගැනීමට ඔබගේ platform එක සපයන ක්‍රමයක් භාවිත කරන්න, නැතහොත් payload එක queue එකකට යවා වෙනම function එකකින් එය handle කරන්න. Metaට ඉක්මනින් acknowledgement එක පමණක් අවශ්‍යය. වැඩ අවසන් වී තිබීම අවශ්‍ය නැත.

Cold starts නිසා මන්දගාමී ප්‍රතිචාර ඇතිවීමේ ඉඩ වැඩි වන අතර, එයින් retries සහ duplicates වැඩි වේ. wamid message id මත deduplication කිරීම optional නොවේ. මෙම ආකෘතිය විශ්වාසදායක කරන්නේ එයයි.

සාමාන්‍ය වැරදි

  • challenge එක raw body එකක් ලෙස නොව JSON ලෙස ආපසු දීම.
  • 200 ප්‍රතිචාරය දීමට පෙර වැඩ කිරීම. serverless පරිසරයක පිළිතුරු දුන් මොහොතේ function එක freeze විය හැක.
  • deduplication මඟහැරීම. Meta සැලසුමෙන්ම නැවත උත්සාහ කරන අතර duplicates සාමාන්‍ය දෙයකි, දුර්ලභ අවස්ථාවක් නොවේ.
EasyCoexistence සමඟ මෙය කිරීම

easycoexistence.com හි අංකය සම්බන්ධ කර webhook destination එක ඔබගේ route එකට සකසන්න. ඉන්පසු dashboard එකෙන් `phone_number_id` සහ token එක ගන්න. අංකයකට මසකට US$ 9 සිට, වැඩි පරිමාවකදී US$ 2 දක්වා අඩුවන අතර පළමු දින 7 නොමිලේ.

නිතර අසන ප්‍රශ්න

මට library එකක් අවශ්‍යද?

නැත. route එකක් සහ fetch එකක් ප්‍රමාණවත්ය. call එක Metaගේ documentation එකට හරියටම ගැළපේ.

මෙය Vercel හෝ Lambda මත ක්‍රියා කරයිද?

ඔව්. සාමාන්‍ය serverless සීමාව ලෙස, පළමුව acknowledgement ලබා දී, inline ලෙස නොව queue එකක් හෝ background ක්‍රමයක් හරහා process කරන්න.

request එක Meta වෙතින් පැමිණි බව තහවුරු කරන්නේ කෙසේද?

signature header එක ඔබගේ app secret එක සමඟ පරීක්ෂා කරන්න. endpoint එක public කළ වහාම මෙය කිරීම වටී.

මට TypeScript භාවිත කළ හැකිද?

ඔව්. අපෙන් type කිරීමට දෙයක් නැත, මන්ද payload එක Metaගේ එකක් වන අතර Meta එය document කර ඇත.

තවදුරටත් කියවන්න

ආරම්භ කිරීමට සූදානම්ද?

WhatsApp Coexistence මිනිත්තු කිහිපයකින් සකසන්න, මාස ගණනකින් නොව. යෙදුම දුරකථනයේ දිගටම ක්‍රියා කරයි.

නොමිලේ trial කාලය ආරම්භ කරන්න

සත්‍යාපනය කළේ

Node.js වෙතින් WhatsApp පණිවිඩ යවන්න