अनुशंसित, 2020

संपादक की पसंद

कैसे एक फेसबुक मैसेंजर बीओटी बनाने के लिए (गाइड)

फेसबुक का "मैसेंजर बॉट्स" फीचर कुछ नया नहीं है, और बहुत सारे भयानक बॉट पहले से मौजूद हैं। हालांकि, आपके बहुत ही बॉट का निर्माण करने के तरीके के बारे में संसाधन दुर्लभ हैं, और उन लोगों के लिए स्पष्टीकरण की कमी है जो फेसबुक ग्राफ़ एपीआई के लिए नए हैं। मैसेंजर बॉट्स के लिए अब आपको SSL सुरक्षित वेबहूक कॉलबैक URL (उस पर बाद में) का उपयोग करने की आवश्यकता होती है, और SSL स्थापित करना हर किसी के लिए नहीं है, और पैसे भी खर्च होते हैं।

इस लेख में, मैं आपको एक सरल फेसबुक मैसेंजर बॉट बनाने की पूरी प्रक्रिया के बारे में बताऊंगा, क्योंकि फेसबुक के स्वयं के प्रलेखन को खराब तरीके से समझाया गया है। हम क्लाउड प्रोटोकॉल सेट करेंगे, जो https प्रोटोकॉल का उपयोग करता है, Node.js (जो एक जावास्क्रिप्ट, सर्वर-साइड भाषा है) में बॉट को कोड करता है, कोड को क्लाउड एप्लिकेशन पर पुश करने के लिए गिट का उपयोग करता है और फेसबुक मैसेंजर पर इसका परीक्षण करता है।

सेटअप बीओटी

आपको अपने लैपटॉप पर स्थापित नोड की आवश्यकता होगी। यदि आप नहीं करते हैं, तो इसे डाउनलोड और इंस्टॉल करने के लिए नोड वेबसाइट पर जाएं।

एक बार जब आप कर लेते हैं, तो आप बॉट के लिए सेटअप जारी रख सकते हैं। नीचे दिए गए चरणों का पालन करें:

1. टर्मिनल लॉन्च करें।

2. आपको अपना कोड रखने के लिए एक अलग निर्देशिका की आवश्यकता है।

  • एक नई निर्देशिका बनाओ
    mkdir testbot
  • अपनी कार्यशील निर्देशिका को आपके द्वारा बनाई गई निर्देशिका में बदलें
    cd testbot

3. इसके बाद, नोड एप्लिकेशन को इनिशियलाइज़ करें।
npm init

  • आपको अपने आवेदन के बारे में जानकारी दर्ज करने के लिए कहा जाएगा, बस सब कुछ के लिए Enter दबाकर चूक का उपयोग करें।

4. संकुल स्थापित करें
npm install express body-parser request --save

  • कमांड चलेगा, और कुछ चेतावनी देगा; उन पर ध्यान न दें।

5. खोजक में, आपके द्वारा बनाई गई निर्देशिका " टेस्टबोट " खोलें, और " package.json " नामक फ़ाइल ढूंढें; Sublime Text जैसे एडिटर में इसे खोलें।

6. इस फ़ाइल में, हमें एक पंक्ति जोड़ने की आवश्यकता है
"start": "node index.js"

  • पिछली पंक्ति के अंत में ", " जोड़ना न भूलें।

7. इसके बाद, Sublime Text में एक नई फ़ाइल बनाएं, और उसके अंदर निम्नलिखित कोड डालें:

[जे एस]

var एक्सप्रेस = आवश्यकता ('एक्सप्रेस');
var bodyParser = आवश्यकता ('body-parser');
var अनुरोध = आवश्यकता ('अनुरोध');
var app = express ();

app.use (bodyParser.urlencoded ({विस्तारित: गलत}));
app.use (bodyParser.json ());
app.listen ((process.env.PORT || 3000));
app.get ('/', function (req, res) {
res.send ('यह TestBot Server' है);
});
app.get ('/ webhook', function (req, res) {
if (req.query ['hub.verify_token'] === 'testbot_verify_token') {
res.send (req.query [ 'hub.challenge']);
} अन्य {
res.send ('अमान्य सत्यापित टोकन');
}
});

[/ Js]

इस फ़ाइल को index.js के रूप में सहेजें

नोट: पंक्ति 13 में, 'hub.verify_token' का मान 'testbot_verify_token' के रूप में सेट किया गया है, इस मान को याद रखें क्योंकि इसका उपयोग फ़ेसबुक बनाने के दौरान किया जाएगा।

गिट रिपोजिटरी बनाएं

अब जब हमने अपने बॉट की कॉलबैक हैंडलिंग की स्थापना की है, तो हमें कोड को हेरोकू पर धकेलना होगा। उसके लिए, हमें अपनी निर्देशिका में git रिपॉजिटरी बनाने की आवश्यकता है।

नोट: "git" फ़ाइलों और सॉफ़्टवेयर कोड के लिए एक संस्करण नियंत्रण प्रणाली है। आप इसके बारे में विकिपीडिया पर अधिक पढ़ सकते हैं।

गिट रिपॉजिटरी बनाना आसान है, और केवल टर्मिनल कमांड के एक जोड़े को लेता है।

नोट: सुनिश्चित करें कि आप टर्मिनल में " टेस्टबोट " निर्देशिका के अंदर हैं। आप टर्मिनल में कमांड pwd टाइप करके ऐसा कर सकते हैं।

गिट रिपॉजिटरी बनाने के लिए इन चरणों का पालन करें:

1. git init

2. git add .

3. git commit -m "Register Facebook Webhook"

हरोकू को सेट करें

इससे पहले कि हम फ़ेसबुक के डेवलपर पेज में जाएं, हमें एक कॉलबैक URL की ज़रूरत है, जिससे फ़ेसबुक बात कर सके। इस URL को https प्रोटोकॉल का उपयोग करने की आवश्यकता है, जिसका अर्थ है कि हमें अपनी वेबसाइट पर SSL प्रमाणपत्र स्थापित करने की आवश्यकता है; लेकिन, यह फेसबुक मैसेंजर बॉट्स के लिए एक शुरुआती मार्गदर्शिका है, इसलिए आइए चीजों को जटिल न करें। हम अपने कोड को तैनात करने के लिए हरोकू का उपयोग करेंगे। हरोकू आपको अपने अनुप्रयोगों के लिए https URL देता है और इसकी एक निःशुल्क योजना है जो हमारी (बहुत बुनियादी) मांगों को पूरा करती है।

हरोकू वेबसाइट पर जाएं और अपना पंजीकरण करें।

नोट: "अपनी प्राथमिक विकास भाषा चुनें" क्षेत्र में, "मैं दूसरी भाषा का उपयोग करता हूं" का उपयोग करें।

एक बार जब आप इसके साथ हो जाते हैं, तो अपने ओएस (मैक, मेरे लिए) के लिए हरोकू टूलबेल को स्थापित करें, और इसे स्थापित करें। यह आपको अपने टर्मिनल (या विंडोज पर कमांड प्रॉम्प्ट) पर हरोकू तक पहुंच देगा।

अगला, हम हरोकू पर एक ऐप बनाएंगे, जो हमारे बॉट के लिए पूरा कोड रखेगा। नीचे दिए गए चरणों का पालन करें:

1. टर्मिनल लॉन्च करें

2. टाइप करें heroku login

  • आपको अपना ईमेल और पासवर्ड दर्ज करने के लिए कहा जाएगा।
  • अपना ईमेल टाइप करें, Enter दबाएं; फिर, अपना पासवर्ड टाइप करें, एंटर दबाएं।
  • आपको हरोकू में लॉग इन किया जाएगा

3. प्रकार heroku create

  • यह हरोकू पर एक ऐप बनाएगा और आपको हाइपरलिंक प्रदान करेगा। ध्यान दें कि लिंक https प्रोटोकॉल का उपयोग कर रहा है। आसान है, है ना?

4. अब आप अपने ऐप कोड को Heroku पर पुश कर सकते हैं
git push heroku master

5. एक बार ऐसा करने के बाद, आपका ऐप मूल रूप से लाइव है, और आप अपने ब्राउज़र में लिंक पर जाकर देख सकते हैं कि सब कुछ ठीक चल रहा है। यह कहते हुए एक वेबपेज खोलना चाहिए " यह टेस्टबॉट सर्वर है "।

फेसबुक सेटअप

यह हमारे बॉट को फेसबुक से जोड़ने का समय है! आपको एक नया फेसबुक पेज बनाने या किसी मौजूदा का उपयोग करने की आवश्यकता होगी जो आपके पास है। मैं आपको एक नया फेसबुक पेज बनाकर दिखाऊंगा।

1. फेसबुक पर जाएं और एक नया पेज बनाएं।

  • आप जो चाहें श्रेणी में एक पेज बना सकते हैं। मैं किसी विशेष कारण से कंपनी / संगठन के लिए चयन कर रहा हूं।

2. अगले चरण जो फेसबुक शो वैकल्पिक हैं, और उन्हें छोड़ दिया जा सकता है।

3. इसके बाद, फेसबुक डेवलपर्स वेबसाइट पर जाएं।

  • शीर्ष-दाईं ओर, " मेरा ऐप्स " पर अपना माउस घुमाएं और फिर ड्रॉप-डाउन मेनू से " नया ऐप जोड़ें " पर क्लिक करें।

  • जब फेसबुक आपको एक प्लेटफ़ॉर्म चुनने के लिए प्रेरित करता है, तो " बेसिक सेटअप " पर क्लिक करें।

4. अपने ऐप नाम और संपर्क ईमेल पते के लिए विवरण भरें।

  • श्रेणी में " पृष्ठों के लिए एप्लिकेशन " चुनें।
  • " ऐप आईडी बनाएं " पर क्लिक करें।

5. आपको अपने ऐप के लिए डैशबोर्ड पर ले जाया जाएगा। साइडबार पर, " + उत्पाद जोड़ें " पर नेविगेट करें और " आरंभ करें " बटन पर क्लिक करके " मैसेंजर " चुनें।

6. " सेटअप Webhooks " का चयन करें।

7. आवश्यक फ़ील्ड भरें, "कॉलबैक URL" को हरोकू ऐप के URL के साथ बदलें, टोकन को index.js फ़ाइल में उपयोग किए गए टोकन के साथ सत्यापित करें, और निम्नलिखित सदस्यता फ़ील्ड चुनें:

  • message_deliveries
  • संदेशों
  • message_optins
  • messaging_postbacks

नोट: सुनिश्चित करें कि आप कॉलबैक URL पर " / webhook " को जोड़ते हैं, ताकि index.js आवश्यक फ़ंक्शन को निष्पादित करता है जब फेसबुक URL को पिंग करने की कोशिश करता है, तो यह "सत्यापित टोकन" सत्यापित कर सकता है।

8. " सत्यापित करें और सहेजें " पर क्लिक करें

9. " टोकन जेनरेशन " अनुभाग में, " एक पृष्ठ चुनें " पर क्लिक करें और उस पृष्ठ का चयन करें जिसे आपने पहले बनाया था।

यह एक " पेज एक्सेस टोकन " उत्पन्न करेगा, इसे कहीं और सहेजें; आपको बाद में इसकी आवश्यकता होगी।

10. इसके बाद, आपको अंतिम चरण में उत्पन्न पेज एक्सेस टोकन का उपयोग करके अपने ऐप में एक POST क्वेरी बनानी होगी। यह टर्मिनल में आसानी से किया जा सकता है। बस निम्न कमांड चलाएँ, जो आपके द्वारा बनाए गए पृष्ठ एक्सेस टोकन के साथ PAGE_ACCESS_TOKEN को प्रतिस्थापित करता है

कर्ल -X POST "//graph.facebook.com/v2.6/me/subscribed_apps?access_token=PAGE_ACCESS_TOKEN"

आपको टर्मिनल में " सफलता " प्रतिक्रिया मिलनी चाहिए।

अधिक हरोकू सेटअप

हाँ, हम नहीं कर रहे हैं, फिर भी। पास नहीं।

1. हरोकू वेबसाइट पर जाएं और अपनी ईमेल आईडी से लॉग इन करें।

2. "डैशबोर्ड" में अपना ऐप ढूंढें और उस पर क्लिक करें।

3. सेटिंग टैब पर नेविगेट करें।

4. " विन्यास वार्स प्रकट करें" पर क्लिक करें

5. PAGE_ACCESS_TOKEN को एक " config var " के रूप में जोड़ें, और " Add " पर क्लिक करें।

वास्तविक बॉट कोडिंग

अब जब हम ग्रंट कार्य के साथ कर रहे हैं, तो हम इस बात पर ध्यान केंद्रित कर सकते हैं कि वास्तव में क्या मायने रखता है: बॉट संदेशों का जवाब देना। शुरू करने के लिए, हम बस एक बॉट को डिज़ाइन करेंगे जो केवल संदेशों को प्राप्त करता है। जैसा कि यह पता चला है, इस सरल कार्य को कार्य करने के लिए काफी कोड की आवश्यकता होती है।

1. संदेश श्रोता को कोड करना

इससे पहले कि बॉट संदेश को वापस कर सके, उसे संदेशों को सुनने में सक्षम होना चाहिए। आइए पहले करते हैं।

Index.js फ़ाइल में, निम्न कोड जोड़ें:

[जे एस]

app.post ('/ webhook', function (req, res) {
var घटनाओं = req.body.entry [0] .messaging;
के लिए (i = 0; मैं <इवेंट.लिफ्टिंग; i ++) {
var घटना = घटनाओं [i];
अगर (Event.message && event.message.text) {
sendMessage (event.sender.id, {text: "इको:" + event.message.text});
}
}
res.sendStatus (200);
});

[/ Js]

यह फ़ंक्शन क्या करता है, क्या यह प्राप्त संदेशों की जांच है, और फिर संदेश में पाठ होने पर जांच करता है। यदि यह प्राप्त संदेश में पाठ पाता है, तो यह SendMessage (बाद में दिखाया गया) फ़ंक्शन को कॉल करता है, प्रेषक की आईडी और पाठ को वापस भेजने के लिए। निम्नलिखित मूल्यों को समझना महत्वपूर्ण है और उनका क्या अर्थ है:

  • event.message.text संदेश में प्राप्त पाठ है। उदाहरण के लिए, यदि कोई व्यक्ति हमारे बॉट में "हैलो" संदेश भेजता है, तो Event.message.text का मूल्य "हैलो" होगा।
  • event.sender.id उस व्यक्ति की आईडी है जिसने बॉट को संदेश भेजा है। यह आवश्यक है ताकि बॉट को पता हो कि किससे प्रतिक्रिया को संबोधित किया जाए।

2. SendMessage फ़ंक्शन को कोड करना

अब "sendMessage" फ़ंक्शन को कोड करता है।

[जे एस]

समारोह भेजें संदेश (प्राप्तकर्ता, संदेश) {
निवेदन({
url: '//graph.facebook.com/v2.6/me/messages',
qs: {access_token: process.env.PAGE_ACCESS_TOKEN},
विधि: 'पोस्ट',
json: {
प्राप्तकर्ता: {आईडी: प्राप्तकर्ता आईडी},
संदेश: संदेश,
}
}, फ़ंक्शन (त्रुटि, प्रतिक्रिया, शरीर) {
अगर (त्रुटि) {
कंसोल.लॉग ('संदेश भेजने में त्रुटि:', त्रुटि);
} और अगर (response.body.error) {
कंसोल.लॉग ('त्रुटि:', प्रतिसाद।अभी.रोर);
}
});
};

[/ Js]

"SendMessage" फ़ंक्शन दो पैरामीटर लेता है:

  • recipientId
  • संदेश

प्राप्तकर्ता को आवश्यक है ताकि संदेश को सही उपयोगकर्ता को संबोधित किया जा सके।

संदेश वास्तविक पाठ है जिसे प्रतिक्रिया में भेजा जाना है।

3. हेरोकू में परिवर्तन को धक्का देना

यदि आपने ऊपर दिए गए चरणों को पूरा कर लिया है, तो आपका बॉट प्राप्त पाठ को वापस करने में सक्षम होना चाहिए। लेकिन सबसे पहले, आपको हरोकू पर होस्ट किए गए एप्लिकेशन में परिवर्तनों को धकेलना होगा। ऐसा करने के लिए, नीचे दिए गए चरणों का पालन करें:

1. टर्मिनल लॉन्च करें।

2. निर्देशिका को अपने टेस्टबोट निर्देशिका में बदलें
cd testbot

3. निम्न चरण करें:

  • जोड़ देना।
  • नोट: "गिट ऐड" के अंत में एक "है।"
  • git कमिट -म "फर्स्ट कमिट"
  • git धक्का heroku मास्टर

4. अब अपने पृष्ठ पर एक संदेश भेजें, और बॉट आपको संदेश वापस भेज देगा।

सशर्त प्रतिक्रियाएं उर्फ ​​बनाना बॉट स्मार्टर

हम अपने फेसबुक मैसेंजर बॉट को कुछ विशेष कीवर्ड के अनुसार प्रतिक्रिया देने के लिए टेक्स्ट मिलान का उपयोग कर सकते हैं।

इसे प्राप्त करने के लिए, हमें एक और फ़ंक्शन जोड़ने की आवश्यकता है। मैं इसे "सशर्त नाम" का नाम दे रहा हूं, लेकिन आप जो चाहें नाम चुन सकते हैं।

1. सशर्तपालन क्रियाओं को कूटना

[जे एस]

समारोह सशर्तप्रतिरूप (प्राप्तकर्ता, पाठ) {
पाठ = पाठ || "";

var क्या = text.match (/ क्या / gi); // जांचें कि क्या टेक्स्ट स्ट्रिंग में "क्या" शब्द है; मामले की अनदेखी करें
varGadget-Info.com = text.match (/ beebom / gi); // जांचें कि क्या टेक्स्ट स्ट्रिंग में "बीबोम" शब्द है; मामले की अनदेखी करें
var who = text.match (/ who / gi); // जांचें कि क्या टेक्स्ट स्ट्रिंग में "कौन" शब्द है; मामले की अनदेखी करें
var you = text.match (/ you / gi); // जांचें कि क्या टेक्स्ट स्ट्रिंग में "आप" शब्द है; मामले की अनदेखी करें

// यदि पाठ में "क्या" और "बीबोम" दोनों हैं, तो यह करें:

if (क्या! = null &&; गैजेट-Info.com! = null) {
संदेश = {
पाठ: "बीबॉम एक वेबसाइट है जो तकनीकी संसाधनों की पेशकश करती है। आपका स्वागत है।"
}
sendMessage (प्राप्तकर्ता, संदेश);
सच लौटना;
}

// यदि पाठ में "कौन" और "आप" दोनों हैं, तो यह करें:
अगर (कौन! = null && आप! = null) {
संदेश = {
पाठ: "मुझे अपनी पहचान पर ऑनलाइन चर्चा नहीं करने के लिए कहा गया है।"
}
sendMessage (प्राप्तकर्ता, संदेश);
सच लौटना;
}

// अगर कुछ भी मिलान नहीं हुआ है, तो आंतरिक फ़ंक्शन के निष्पादन को जारी रखने के लिए गलत तरीके से लौटें।
विवरण झूठा है;
};

[/ Js]

4 से 7 की पंक्तियों में, हमने विशेष शब्दों के खिलाफ प्राप्त स्ट्रिंग के मिलान के आधार पर चर को परिभाषित किया है। "Text.match ()" का उपयोग करने के बारे में सबसे अच्छी बात यह है कि यह रेग्युलर एक्सप्रेशंस (आमतौर पर रेगेक्स कहा जाता है, यहां अधिक पढ़ें) का उपयोग करता है। यह हमारे लिए अच्छा है, क्योंकि इसका मतलब यह है कि जब तक हमें प्राप्त पाठ में किसी शब्द का एक हिस्सा मेल नहीं खाता है, जिसका हमने text.match () में उल्लेख किया है, तो चर शून्य नहीं होगा। इसका मतलब यह है, कि यदि प्राप्त संदेश "व्हाट बीबॉम?", "Var what" और "var beebom" शून्य नहीं होगा, क्योंकि "What" शब्द में "क्या" शब्द शामिल है। इसलिए हम हर भिन्नता के लिए अतिरिक्त कथन बनाने से बच जाते हैं जिसमें कोई व्यक्ति "क्या" कह सकता है।

2. संदेश श्रोता को संपादित करना

हमें उस संदेश श्रोता को भी संपादित करने की आवश्यकता है जिसे हमने कोडित किया है, यह सुनिश्चित करने के लिए कि वह प्राप्त पाठ को "सशर्तप्रतिरूपों" फ़ंक्शन के साथ भी मिलान करने का प्रयास करता है।

[जे एस]

app.post ('/ webhook', function (req, res) {
var घटनाओं = req.body.entry [0] .messaging;
के लिए (i = 0; मैं <इवेंट.लिफ्टिंग; i ++) {
var घटना = घटनाओं [i];
अगर (Event.message && event.message.text) {

// पहले यह जांचने का प्रयास करें कि प्राप्त संदेश सशर्त प्रतिक्रिया के लिए योग्य है या नहीं।
अगर (सशर्तप्रतिरूपों (event.sender.id, event.message.text)) {

// अगर यह नहीं है, तो प्रेषक को वापस प्राप्त संदेश को प्रतिध्वनित करें।
sendMessage (event.sender.id, {text: "इको:" + event.message.text});
}
}
}
res.sendStatus (200);
});

[/ Js]

श्रोता में परिवर्तन बहुत कठोर नहीं लग सकता है, लेकिन उनके प्रभाव सुनिश्चित हैं। अब, श्रोता पहले सशर्त प्रतिक्रियाओं के साथ जवाब देने की कोशिश करता है, और यदि प्राप्त संदेश के लिए कोई मान्य शर्त नहीं है, तो यह उपयोगकर्ता को संदेश वापस भेज देता है।

3. हेरोकू में परिवर्तन को धक्का देना

इससे पहले कि आप नई सुविधाओं को आज़मा सकें, आपको हरकोको पर होस्ट किए गए ऐप में अपडेटेड कोड को पुश करना होगा। ऐसा करने के लिए नीचे दिए गए चरणों का पालन करें:

1. टर्मिनल लॉन्च करें।

2. निर्देशिका को अपने टेस्टबोट निर्देशिका में बदलें
cd testbot

3. निम्न चरण करें:

  • जोड़ देना।
  • नोट: "गिट ऐड" के अंत में एक "है।"
  • git कमिट-मी "सशर्त क्षमताएं जोड़ना"
  • git धक्का heroku मास्टर

4. अब अपने पृष्ठ पर एक संदेश भेजें, और बॉट आपको संदेश वापस भेज देगा।

यहां तक ​​कि अधिक कार्यक्षमता

हमारा बॉट अब अच्छी, संरचित प्रतिक्रियाओं में आदेशों के एक छोटे से सेट का जवाब देता है। लेकिन यह अभी भी बहुत उपयोगी नहीं है। आइए हमारे बॉट को सॉफ़्टवेयर के अधिक " कार्यात्मक " टुकड़े बनाने के लिए कोड में कुछ और बदलाव करें। हम बहुत सारे फ़ंक्शंस को फिर से चालू करेंगे, और एक जोड़े को और अधिक जोड़ेंगे, ताकि उत्साहित हों।

1. संदेश श्रोता को संपादित करना

इस स्तर पर हमारा संदेश सुनने वाला, ठीक काम करता है। हालाँकि, यह बहुत अच्छी तरह से स्वरूपित नहीं है और अगर हम अतिरिक्त " स्थिति की जाँच " को जोड़ने के लिए बयानों को बढ़ाने के लिए नेस्टेड रखना चाहते थे, तो यह देखने में मुश्किल हो जाएगा, समझने में मुश्किल और निष्पादन में धीमी हो जाएगी। हम नहीं चाहते कि, अब, क्या हम? आइए कुछ बदलाव करें।

नोट: संदेश श्रोता में कोड की एक पंक्ति है जो "res.sendStatus (200)" पढ़ती है, यह रेखा फेसबुक को एक स्थिति 200 कोड भेजती है, यह बताती है कि फ़ंक्शन सफलतापूर्वक निष्पादित किया गया है। फेसबुक के प्रलेखन के अनुसार, फेसबुक को 200 का दर्जा प्राप्त करने के लिए अधिकतम 20 सेकंड तक इंतजार करना पड़ता है, इससे पहले कि वह यह तय कर ले कि संदेश नहीं गया और कोड का निष्पादन बंद हो गया।

हमारा नया संदेश श्रोता इस तरह दिखता है। हम फ़ंक्शन का निष्पादन रोकने के लिए " res.sendStatus (200) " कमांड का उपयोग करते हैं जैसे ही किसी शर्त का मिलान किया जाता है और निष्पादित किया जाता है।

[जे एस]

app.post ('/ webhook', function (req, res) {
var घटनाओं = req.body.entry [0] .messaging;
के लिए (i = 0; मैं <इवेंट.लिफ्टिंग; i ++) {
var घटना = घटनाओं [i];
अगर (Event.message && event.message.text) {

// इंट्रोस्पेस स्थितियों के खिलाफ पहले संदेश पाठ की जाँच करें
अगर (introResponse (event.sender.id, event.message.text)) {
res.sendStatus (200);
}

// एक बेहतर नाम की कमी के लिए, मैंने इसे नया नाम दिया: p; यह अगले की जाँच करें
और यदि (newResponse (event.sender.id, event.message.text)) {
res.sendStatus (200);
}

// और, बस मूल संदेश वापस गूंज
अन्य {
// वैध कमांड सूची के साथ प्रतिध्वनि बदलें
sendMessage (event.sender.id, {text: "इको:" + event.message.text});
}
}
}
res.sendStatus (200);
});

[/ Js]

2. NewResponse फ़ंक्शन को कोड करना

हमारा संदेश श्रोता अब भी "newResponse" में शर्तों के एक सेट के खिलाफ संदेश पाठ की जाँच करता है, लेकिन पहले, हमें newResponse फ़ंक्शन को कोड करना होगा। हम इस फ़ंक्शन का उपयोग यह जांचने के लिए करेंगे कि क्या उपयोगकर्ता ने theGadget-Info.comwebsite से लेख के सुझाव मांगे हैं, वेबसाइट पर क्वेरी शब्द खोजें, और उपयोगकर्ता के लिए लिंक प्रस्तुत करें। एक बार फिर, हम विशिष्ट खोजशब्दों के साथ पाठ का मिलान करने के लिए नियमित अभिव्यक्तियों का उपयोग करेंगे।

[जे एस]

समारोह newResponse (प्राप्तकर्ता, पाठ) {
पाठ = पाठ || "";
var का सुझाव = text.match (/ सुझाव / gi);
var random = text.match (/ random / gi);
var लेख = text.match (/ लेख / gi);
var iphone = text.match (/ iphone / gi);
var android = text.match (/ android / gi);
var mac = text.match (/ mac / gi);
var ब्राउज़र = text.match (/ ब्राउज़र / जीआई);
var vpn = text.match (/ vpn / gi);

// जांचें कि क्या उपयोगकर्ता लेख के सुझावों के लिए पूछ रहा है
अगर (सुझाव! = null && लेख! = null) {
var क्वेरी = "";
// यदि लेख के सुझावों की पुष्टि की जाती है, तो उस विषय की जांच करें जिसे उपयोगकर्ता ढूंढ रहा है
अगर (Android! = null) {
क्वेरी = "एंड्रॉइड";
} और अगर (mac! = null) {
क्वेरी = "मैक";
} और अगर (iphone! = null) {
क्वेरी = "iPhone";
} और अगर (ब्राउज़र! = null) {
क्वेरी = "ब्राउज़र";
} और अगर (vpn! = null) {
क्वेरी = "वीपीएन";
}
sendButtonMessage (प्राप्तकर्ता, क्वेरी);
सच लौटाओ
}
विवरण झूठा है;
};

[/ Js]

यदि उपयोगकर्ता लेख के सुझाव मांग रहा है तो हम संदेश भेजने के लिए "sendButtonMessage" नामक एक अन्य कस्टम फ़ंक्शन का उपयोग कर रहे हैं। इसे हम आगे बनाएंगे।

3. SendButtonMessage फ़ंक्शन को कोड करना

SendButtonMessage फ़ंक्शन दो मापदंडों, एक प्राप्तकर्ता आईडी और एक क्वेरी लेता है प्राप्तकर्ता आईडी का उपयोग उस उपयोगकर्ता को पहचानने के लिए किया जाता है जिसे संदेश भेजा जाना चाहिए, और क्वेरी का उपयोग उस विषय की पहचान करने के लिए किया जाता है, जिस पर उपयोगकर्ता सुझाव चाहता है।

[जे एस]

फ़ंक्शन भेजेंबटन संदेश (प्राप्तकर्ता, क्वेरी) {
var संदेशडाटा = {
प्राप्त करने वाला: {
आईडी: प्राप्तकर्ता
},
संदेश: {
लगाव: {
प्रकार: "टेम्पलेट",
पेलोड: {
template_type: "बटन",
पाठ: "यह वही है जो मैंने पाया" + क्वेरी के लिए,
बटन:[{
प्रकार: "web_url",
url: "//www.beebom.com/?s="+query,
शीर्षक: "बीबॉम:" + क्वेरी
}]
}
}
}
};

callSendAPI (messageData);
}

[/ Js]

एक बार फिर, हम एक कस्टम फ़ंक्शन का उपयोग कर रहे हैं; इस बार उपयोगकर्ता के लिए लेख लिंक के साथ अंतिम संदेश भेजने के लिए। फ़ंक्शन कई मायनों में, "sendMessage" फ़ंक्शन के समान है जिसे हमने पहले कोडित किया था, लेकिन संदेश डेटा लेने के तरीके में यह अधिक सामान्य है, जो हमें सूट करता है, क्योंकि उपयोगकर्ता द्वारा किए गए क्वेरी के साथ हमारा संदेश डेटा बदलता है।

4. CallSendAPI फ़ंक्शन को कोड करना

"CallSendAPI" फ़ंक्शन एक एकल पैरामीटर, "मैसेजडाटा" लेता है। इस पैरामीटर में संपूर्ण संदेश डेटा होता है, जिसे फ़ेसबुक नियमों के अनुसार ठीक से स्वरूपित किया जाता है, ताकि मैसेंजर इसे उपयोगकर्ता को ठीक से प्रदर्शित कर सके।

[जे एस]

समारोह callSendAPI (messageData) {
निवेदन({
uri: '//graph.facebook.com/v2.6/me/messages',
qs: {access_token: process.env.PAGE_ACCESS_TOKEN},
विधि: 'पोस्ट',
json: messageData

}, फ़ंक्शन (त्रुटि, प्रतिक्रिया, शरीर) {
अगर (त्रुटि && response.statusCode == 200) {
var प्राप्तकर्ता Id = body.recipient_id;
var messageId = body.message_id;

कंसोल.लॉग ("आईडी% s के साथ प्राप्तकर्ता% s के साथ सफलतापूर्वक भेजा गया सामान्य संदेश",
messageId, प्राप्तकर्ता);
} अन्य {
कंसोल। शेर ("संदेश भेजने में असमर्थ।");
console.error (प्रतिक्रिया);
console.error (त्रुटि);
}
});
}

[/ Js]

5. हेरोकू में परिवर्तन को धक्का देना

हम अपने उन्नत बॉट को लाइव बनाने की दिशा में अंतिम चरण पर हैं। हमें बस हर कोड परिवर्तन को हेरोकू पर धकेलने की आवश्यकता है। प्रक्रिया पहले की तरह ही है, और नीचे उल्लिखित है:

1. टर्मिनल लॉन्च करें।

2. टेस्टबोट डायरेक्टरी में डायरेक्टरी बदलें।
cd testbot

3. निम्नलिखित करें:

  • जोड़ देना।
  • नोट: उस कमांड के अंत में एक "" है
  • Git प्रतिबद्ध -m "हालत की जाँच और स्वरूपण में सुधार"
  • git धक्का heroku मास्टर

4. अब “Android पर एक लेख सुझाएं” या “Beebom, मुझे Android पर कोई भी लेख सुझाएं” जैसे संदेश भेजें; और बॉट एक अच्छी तरह से स्वरूपित संदेश को एक लिंक के साथ भेजेगा जिसे आप अपनी क्वेरी से संबंधित लेख खोलने के लिए टैप कर सकते हैं।

गहरी खुदाई

अब जब आप जानते हैं कि फेसबुक मैसेंजर बॉट विकसित करने के साथ शुरुआत कैसे करें, फेसबुक मेसेंजर बॉट कैसे विकसित करें, इस पर फेसबुक डॉक्यूमेंटेशन के माध्यम से जाने। जबकि प्रलेखन शुरुआती के लिए अच्छा नहीं है, आप अभी शुरुआत नहीं कर रहे हैं। आपको आधिकारिक दस्तावेज की जांच करनी चाहिए और यह पता लगाने की कोशिश करनी चाहिए कि आपके बॉट को और भी स्मार्ट कैसे बनाया जाए। टीज़र: आप छवियों और बटन के साथ संदेश भी भेज सकते हैं! अपने बॉट को कोड करने के लिए Wit.ai और Api.ai जैसी सेवाओं का उपयोग करना भी संभव है और फिर इसे फेसबुक के साथ एकीकृत करें, लेकिन उन सेवाओं का उपयोग करने के लिए मेरे विनम्र प्रयासों में, Wit.ai बहुत अच्छा काम नहीं करता है, और Api.ai शुरुआती के लिए एक तेज सीखने की अवस्था है।

क्या आपने कभी फेसबुक मैसेंजर बॉट विकसित किया है? यदि आपके पास है, तो आप इसे विकसित करने के बारे में कैसे गए, और यह क्या कर सकता है? क्या आपने अपना बॉट बनाने के लिए Wit.ai और Api.ai जैसी सेवाओं का उपयोग किया था? यदि आपने कभी बॉट को कोड करने के लिए अपने हाथों की कोशिश नहीं की है, तो जाएं और अपने स्वयं के फेसबुक मैसेंजर बॉट को विकसित करें, इसे स्मार्ट और बेहतर बनाएं, और हमें नीचे दिए गए टिप्पणियों में अपने अनुभव के बारे में बताएं।

Top