এক দিনেরও কম সময়ে নোড.জেএস দিয়ে নিজের ফেসবুক মেসেঞ্জার চ্যাটবোট তৈরি করুন।

গত কয়েক সপ্তাহ থেকে, আমি একটি চ্যাটবট প্ল্যাটফর্ম তৈরির জন্য কাজ করছি যা ব্যবহারকারীরা স্ক্র্যাচ এবং প্ল্যাটফর্মটি নির্মাণের প্রক্রিয়া থেকে সমস্তভাবে কোডিং ছাড়াই তাদের বটগুলি তৈরি করতে এবং সংযোগ স্থাপন করতে সক্ষম করে, আমি অনেকগুলি অনুসন্ধান এবং গবেষণা করেছিলাম এবং সামনে এসেছিলাম অনেকগুলি নিবন্ধ এবং পোস্ট যা চ্যাটবটগুলি তৈরির বিষয়ে কথা বলেছিল এবং আমি যেটা বুঝতে পেরেছিলাম তা হল বেশিরভাগ নিবন্ধগুলি জিইটি স্টেটেড বোতাম যুক্ত করা, টাইপিং সূচক, অ্যানিমেশন, তালিকা, এবং কার্ড টেম্পলেট, ধ্রুবক মেনু, পোস্টব্যাকগুলি পরিচালনা করার মতো সহজ মূল উপাদানগুলি বাদ দেয় is প্রভৃতি

সুতরাং আজ আমরা নোড.জেএস ব্যবহার করে স্ক্র্যাচ থেকে একটি ফেসবুক মেসেঞ্জার বট তৈরি করব এবং আমরা এটি হিরোকুতে স্থাপন করব (কারণ আমাদের একটি বৈধ SSL শংসাপত্র প্রয়োজন) আপনিও এর জন্য এনগ্রোক ব্যবহার করতে পারেন তবে আমি হিরোকুকে পছন্দ করি। মেসেঞ্জার প্ল্যাটফর্মটি আমাদের বট তৈরির জন্য আমাদের সরঞ্জামবাক্স এবং আমরা উপরে যে কথা বলেছিলাম তার মতো ইতিমধ্যে উপলব্ধ কোর উপাদানগুলিও আমরা ব্যবহার করব।

এই টিউটোরিয়ালটির পূর্বশর্ত হ'ল নোড.জেএস, গিটহাব এবং বেসিক জাভাস্ক্রিপ্ট বোঝাপড়া। সুতরাং আমরা এগিয়ে যাওয়ার আগে আমাকে প্রক্রিয়াটি 5 টি ধাপে বিভক্ত করুন। আপনি আটকে গেলে আপনি গিটহাবের সংগ্রহস্থলটিও উল্লেখ করতে পারেন।

  • আমাদের এক্সপ্রেস সার্ভার তৈরি করা হচ্ছে।
  • ওয়েবহুক সেট আপ করা হচ্ছে।
  • হিরকুতে মোতায়েন করুন
  • ফেসবুক অ্যাপ সেট আপ করা হচ্ছে।
  • বট তৈরি করুন।
পদক্ষেপ 1: আমাদের অ্যাপ্লিকেশন তৈরি করা

আমরা একটি সহজ চ্যাটবট তৈরি করব যা আমাদের খাওয়া খাবারের পুষ্টিগুণ সম্পর্কে জানায় (পুষ্টির ডেটা পেতে আমরা তৃতীয় পক্ষের এপিআই ব্যবহার করব)। সুতরাং আসুন আমাদের ওয়েবহুক এন্ডপয়েন্ট সহ একটি সাধারণ ওয়েব সার্ভার তৈরি করে শুরু করি। আপনার ম্যাসেঞ্জার বট-এর যা কিছু ঘটে তা আপনার ওয়েব হুককে ইভেন্ট হিসাবে প্রেরণ করা হয়। আপনার কোডটি এখানেই বাস করে এবং এটি আপনার মেসেঞ্জার প্ল্যাটফর্ম সংহতকরণের মূল, যেখানে আপনি বার্তা পাবেন, প্রক্রিয়া করবেন এবং প্রেরণ করবেন।

আসুন একটি ডিরেক্টরি তৈরি করুন এবং আমরা এর নাম ফেসবুক-বট করতে যাচ্ছি। আপনি যা খুশি তা নামকরণ করতে পারেন

আমি আমার কোড সম্পাদক হিসাবে ভিএস কোড ব্যবহার করছি।

এখন যেহেতু আমরা ডিরেক্টরিটি তৈরি করেছি এনটিএম এনটি টাইপ করে নোড অ্যাপটি শুরু করতে দেয়।

এখন যখন আপনার নোড সেটআপ হয়েছে আমাদের কয়েকটি সার্ভার সেট আপ করার জন্য আমাদের প্রয়োজন হবে এমন কয়েকটি প্যাকেজ ইনস্টল করা যাক।

এনপিএম এক্সপ্রেস বডি পার্সার মুরগান অনুরোধ নোডমন - সংরক্ষণ করুন

ইনস্টলেশন শেষ হয়ে গেলে আপনি এই প্যাকেজগুলি আপনার প্যাকেজ.জসন ফাইলে দেখতে পাবেন এবং আপনার প্যাকেজ.জসন ফাইলটিতে "স্টার্ট": "নোডমন সার্ভার.জ" যুক্ত করতে ভুলবেন না এটি যখনই কোনও পরিবর্তন আসে তখন এটি মূলত অ্যাপ্লিকেশনটি পুনরায় চালু করে কোডটিতে আপনাকে নিজের সার্ভারটি ম্যানুয়ালি পুনরায় চালু করার ব্যথা বাঁচায়।

এখন আমরা সার্ভার.জেএস নামে একটি ফাইল এবং রুট নামে একটি ফোল্ডার তৈরি করতে যাচ্ছি এবং রুট ফোল্ডারের অভ্যন্তরে আমরা একটি ফাইল তৈরি করব ওয়েবহুক_সিভারি.জেএস

যদি সবকিছু ঠিকঠাক হয় তবে আপনার ডিরেক্টরিটি এটির মতো দেখা উচিত

এখন আসুন আমাদের সার্ভার.জেএস ফাইলে নিম্নলিখিত কোডটি যুক্ত করুন

কনস্ট এক্সপ্রেস = প্রয়োজনীয় ('এক্সপ্রেশন') কনস্ট মরগান = প্রয়োজনীয় ('মরগান'); কনস্ট বডি পার্সার = প্রয়োজনীয় ('বডি-পার্সার');
কনট অ্যাপ = এক্সপ্রেস ();
// অ্যাপ্লিকেশন কনফিগারেশন অ্যাপ.সেট ('পোর্ট', (প্রক্রিয়া.এনভি.অ্যাপ্ট || 3000));
// আমাদের এক্সপ্রেস অ্যাপ্লিকেশন সেটআপ করুন
app.use (মরগান ( 'দেব')); // কনসোলে প্রতিটি অনুরোধ লগ করুন। app.use (বডি পার্সার.উরল্যানকোড ({প্রসারিত: মিথ্যা})); app.use (bodyParser.json ());
// অ্যাপ রুটগুলির জন্য প্রয়োজন ('./ রুটস / ওয়েবহুক_ভারিফাই') (অ্যাপ);
// ইঞ্জিনগুলিকে উষ্ণ করছে !! সেটটা !! যাওয়া !!!.
app.listen (app.get ('पोर्ट'), ফাংশন () {কনট url = 'http: // লোকালহোস্ট:' + app.set ('পোর্ট'); কনসোল.লগ ('বন্দরে চলছে অ্যাপ্লিকেশন:', app.get ( 'বন্দর'));
});
পদক্ষেপ 2: ওয়েবহুক স্থাপন করা।

ওয়েস্ট হুক এন্ডপয়েন্টটি তৈরি করার কোডটি লেখার সময় যা পোষ্ট অনুরোধগুলি গ্রহণ করে, চেক করে অনুরোধটি একটি ওয়েবহুক ইভেন্ট, তারপরে বার্তাটিকে বিশ্লেষণ করে। এই শেষ বিন্দুটি যেখানে মেসেঞ্জার প্ল্যাটফর্ম সমস্ত ওয়েব হুক ইভেন্ট পাঠাবে। এখন webhook_verify.js ফাইলে নিম্নলিখিত কোডটি লিখুন।

কনস প্রক্রিয়াপোস্টব্যাক = প্রয়োজন ('../ প্রসেস / পোস্টব্যাক'); কনসেট প্রক্রিয়ামেজ = প্রয়োজনীয় ('../ প্রসেস / বার্তা');
মডিউল.এক্সপোর্টস = ফাংশন (অ্যাপ, চক)। app.get ('/ ওয়েবহুক', ফাংশন (রেক, রেজ)) {যদি (req.query ['hub.verify_token'] === প্রক্রিয়া.এনভি.ভেরিফাইআলকেন) so কনসোল .log ('ওয়েবহুক যাচাইকৃত'); রেজ.স্ট্যাটাস (200) .সেন্ড (req.query ['hub.challenge']);} অন্য {কনসোল.অরর ('যাচাইকরণ ব্যর্থ হয়েছে। টোকেন অমিল।'); পুনঃসংশ্লিষ্ট স্ট্যাটাস (403);}}); app.post ('/ ওয়েবহুক', ফাংশন (req, res) {// পৃষ্ঠা সাবস্ক্রিপশন জন্য চেক করা। যদি (req.body.object === 'পৃষ্ঠা') {/ * প্রতিটি এন্ট্রি উপর আইট্রেট, একাধিক এন্ট্রি হতে পারে কলব্যাক ব্যাচ করা থাকলে। * /
req.body.entry.forEach (ফাংশন (এন্ট্রি) {// প্রতিটি মেসেজিং ইভেন্টের উপরে আইট্রেট করুন enter.messaging.forEach (ফাংশন (ইভেন্ট) so কনসোল.লগ (ইভেন্ট); যদি (ইভেন্ট.পোস্টব্যাক) {প্রসেসপোস্টব্যাক (ইভেন্ট); } অন্যথায় যদি (ইভেন্ট.মেসেজ) {প্রসেসম্যাসেজ (ইভেন্ট);}});}); res.sendStatus (200); }}); }

প্রসেস.এনভি.ভেরিফাইস্কেন হ'ল একটি ফেসবুক অ্যাপ তৈরি করার সময় যাচাইকরণ টোকেন যা আমরা তৈরি করব এবং তারপরে আমরা যখন এটি হিরকুতে স্থাপন করি তখন পরিবেশের পরিবর্তনশীলটিতে সেটি সংরক্ষণ করব। আপনি সরাসরি হার্ড কোড করতে পারেন তবে এটি করা ভাল অভ্যাস নয়।

প্রসেসপোস্টব্যাক এবং প্রসেসমেসেজ স্বতন্ত্র ফাংশন যা প্রাপ্ত বিভিন্ন ইভেন্ট হ্যান্ডেল করবে এটি একটি বার্তা বা একটি পোস্টব্যাক হতে পারে, আমরা এই টিউটোরিয়ালটির পরবর্তী অংশগুলিতে এই দুটি পদাবলীর বিস্তারিতভাবে বোঝার চেষ্টা করব এবং বুঝতে পারি। নতুন ফোল্ডারের নামকরণ প্রসেসে দুটি ফাইল পোস্টব্যাক.জেস এবং ম্যাসেজ.জেএস তৈরি করুন। আমরা একই ফাইলটিতে সবকিছু লিখতে পারতাম তবে আমি কোডটি পরিষ্কার এবং সুসংহত রাখতে চাই। প্রসেসপোস্টব্যাক ফাংশনটি পোস্টব্যাক ইভেন্টগুলি হ্যান্ডলিং করবে অর্থাত্ প্রাপ্ত পেডলোডগুলিতে সাড়া দেওয়া এবং অন্য ফাংশন প্রক্রিয়া ম্যাসেজ পাঠ্য প্রতিক্রিয়াগুলি হ্যান্ডেল করছে।

পদক্ষেপ 3: হিরকুতে স্থাপন করা

এখন যেহেতু আমরা আমাদের সার্ভারটি তৈরি করেছি আমাদের আমাদের কোডটি হিরকুতে স্থাপন করা দরকার কারণ আমাদের স্থানীয় সার্ভারটি ইন্টারনেটের প্রত্যেকের কাছে অ্যাক্সেসযোগ্য নয় এবং এটি এইচটিটিপিএস প্রোটোকলকে সমর্থন করে না এটি একটি আবশ্যক কারণ ফেসবুক থেকে বোঝা যায় যে সমস্ত ওয়েবহুক সাবস্ক্রিপশন অবশ্যই একটি সুরক্ষিত ব্যবহার করবে এইচটিটিপিএস কলব্যাক URL যার অর্থ লোকালহোস্ট বা কোনও স্ব স্ব স্বাক্ষরযুক্ত শংসাপত্র কাজ করবে না।

হিরোকু account অ্যাকাউন্ট তৈরি করুন → লগইন করুন → অ্যাপ্লিকেশন তৈরি করুন।

পরবর্তী পদক্ষেপটি হ'ল আপনার মোতায়েনের পদ্ধতিটি বেছে নেওয়া যার মূলত এর অর্থ হ'ল আপনি হেরোকু গিট বা গিথুবকে ব্যবহার করতে পারেন। আমি হিরোকু গিটের পরিবর্তে আমার গিটহাবের সংগ্রহশালা ব্যবহার করব। তবে আমি আমার গিটহাব সংগ্রহস্থলটির সাথে সংযুক্ত হওয়ার আগে আমাকে গিটহাবের একটি খালি সংগ্রহস্থল তৈরি করতে হবে যেখানে আমরা এখন পর্যন্ত আমাদের লেখা সমস্ত কোডগুলিতে চাপ দেব।

এখন যেহেতু আমরা আমাদের কোডটিকে আমাদের নিজ নিজ সংগ্রহস্থলের দিকে ঠেলে দিয়েছি আমরা এগিয়ে যেতে এবং আমাদের গিটহাবকে সংযুক্ত করতে পারি।

আপনার গিটহাব সংগ্রহস্থলটির সাথে সংযোগ স্থাপনের পরে স্বয়ংক্রিয় মোতায়েনগুলি সক্ষম করুন যাতে আপনি কোডের প্রতিটি নতুন টুকরো আপনার ভান্ডারটিতে চাপলে কোড স্বয়ংক্রিয়ভাবে স্থাপন করা হয়।

এবং আমরা এখানে সম্পন্ন !!!
পদক্ষেপ 4: ফেসবুক অ্যাপ সেট আপ করা।

এখন আমরা https://developers.facebook.com/ এ একটি অ্যাপ তৈরি করতে যাচ্ছি।

আমার অ্যাপ্লিকেশন বিভাগে ক্লিক করুন এবং একটি নতুন অ্যাপ্লিকেশন তৈরি করুন।

এখন আমাদের অ্যাপে মেসেঞ্জার প্ল্যাটফর্ম যুক্ত করতে হবে।

আপনার অ্যাপটিতে ম্যাসেঞ্জার যুক্ত করতে সেট আপ ক্লিক করুন on

এখন মেসেঞ্জার সেটিংয়ে আমাদের ওয়েবহুক শেষ পয়েন্টটি কনফিগার করতে হবে এবং শেষ পৃষ্ঠায় একটি পৃষ্ঠা সাবস্ক্রাইব করতে হবে।

আপনি যাচাই এবং সংরক্ষণ করুন আঘাত করার আগে দয়া করে যাচাইকরণ টোকেনটি অনুলিপি করুন এবং হেরোকুতে পরিবেশ পরিবর্তনশীল সেট করুন। সেটিংস ট্যাবে ক্লিক করুন এবং তারপরে config কনভার্ট কনফিগারেশনগুলি → সেট করুন VERIFY_TOKEN এবং PAGE_ACCESS_TOKEN

আমরা আসলে আমাদের বট তৈরি শুরু করার আগে চূড়ান্ত পদক্ষেপটি পৃষ্ঠাটি ওয়েবহুকটিতে সাবস্ক্রাইব করে।

এখন যেহেতু আমাদের ওয়েব হুক প্রস্তুত এবং স্থাপন করা হয়েছে এটি সময়কে চূড়ান্ত বিভাগে ছাড়িয়েছে যেখানে বট যুক্তি তৈরি করা হবে এবং এটি প্রাপ্ত প্রতিক্রিয়ার ভিত্তিতে এটি করতে বলবে।

পদক্ষেপ: 4 বট নির্মাণ

আমরা প্রথমে আমাদের বটটিতে একটি জেট স্টেটেড বোতাম যুক্ত করে শুরু করব যা ব্যবহারকারীর চ্যাটবোটের সাথে যোগাযোগ শুরু করার জন্য প্রবেশের পয়েন্ট হবে।

কার্ল-এক্স পোস্ট-এইচ "বিষয়বস্তুর ধরণ: অ্যাপ্লিকেশন / জসন" -ড '{"গেট_স্টার্ট": pay "পেইলোড": "জিইএসএসটিআরটিডপায়লোড"}}' "https://راف.facebook.com/v2.6/me / messenger_profile? ACCESS_TOKEN = PAGE_ACCESS_TOKEN "

শুরু করার বোতামটি যুক্ত করতে উপরের কার্ল কমান্ডটি ব্যবহার করুন। নিশ্চিত করুন যে আপনি GET_STARTED_PAYLOAD এবং PAGE_ACCESS_TOKEN উভয়কেই কংক্রিট মান সহ প্রতিস্থাপন করেছেন এবং সাফল্যের সাথে আপনি একটি বার্তা পাবেন

{ "ফল": "বিজয়"}
এটিই আমি উল্লেখ করছি

ওয়েল আমি ওয়েলকোমে আমার পে-লোড সেট করেছি তাই ব্যবহারকারীরা যখনই শুরু করুন বোতামটি ক্লিক করেন তখন এগিয়ে যান এবং একটি স্বাগতম শুভেচ্ছা বার্তা পাঠান। আমরা একটি নতুন ফোল্ডার তৈরি করব এবং এর টেম্পলেটগুলির নাম দেব এবং 3 টি ফাইল তৈরি করব

  • senderAction.js
  • sendMessage.js
  • sendGenericTemplate.js

এখন যেহেতু আমরা আমাদের ফাইলগুলি তৈরি করেছি তা সম্পর্কিত ফাংশনগুলি লিখতে দেয়।

senderAction.js
const অনুরোধ = প্রয়োজনীয় ('অনুরোধ'); মডিউল.এক্সপোর্টস = ফাংশন প্রেরকঅ্যাকশন (প্রাপকআইডি) {
অনুরোধ ({url: "https://راف.facebook.com/v2.6/me/messages", কিউস: {অ্যাক্সেস_ টোকেন: প্রসেস.এনভি.পি.পি.এক্স.সি.এস.এস.এস.কি.এস.কি.কি. method, পদ্ধতি: "পোস্ট", জেএসন: ip প্রাপক: {আইডি : প্রাপকআইড}, "প্রেরক_অ্যাকশন": "টাইপিং_অন"}}, ফাংশন (ত্রুটি, প্রতিক্রিয়া, শরীর) {যদি (ত্রুটি) {কনসোল.লগ ("বার্তা প্রেরণে ত্রুটি:" + প্রতিক্রিয়া.অরর);}}); }
sendMessage.js
const অনুরোধ = প্রয়োজনীয় ('অনুরোধ'); মডিউল.এক্সপোর্টস = ফাংশন সেন্ডমেসেজ (প্রাপকআইডি, বার্তা) {
নতুন প্রতিশ্রুতি (ফাংশন (সমাধান, প্রত্যাখ্যান) প্রত্যাবর্তন করুন {অনুরোধ ({url: "https://راف.facebook.com/v2.6/me/messages", কিউএস: {অ্যাক্সেস_ টোকেন: প্রক্রিয়া.এনভি.পি.এফ.সি.এ.সি.এস.এস.এস.সি.এস.কি.এস.কি.কি.পি., পদ্ধতি: "পোস্ট", জসন: ip প্রাপক: {আইডি: প্রাপকআইডি}, বার্তা: বার্তা,}}, ফাংশন (ত্রুটি, প্রতিক্রিয়া, শরীর) {যদি (ত্রুটি) {কনসোল.লগ ("বার্তা প্রেরণে ত্রুটি:" + প্রতিক্রিয়া.অরর ); প্রত্যাখ্যান (প্রতিক্রিয়া.অরর);} অন্য {সমাধান (শরীর);}});})}

প্রেরকশক্তিটি ফাংশন প্রেরণ API এর মাধ্যমে কথোপকথনে একটি টাইপিং সূচক প্রদর্শন করবে। বার্তা প্রাপকদের আপনি যা দেখেছেন এবং তাদের বার্তাগুলি প্রসেস করছেন তা জানার জন্য এটি সহায়ক এবং সেন্ডম্যাসেজ ফাংশনটি ব্যবহারকারীকে প্রতিক্রিয়া প্রেরণ করবে। এখন আসুন পোস্টব্যাক.জেএস ফাইলটিতে ফিরে যাই এবং ব্যবহারকারীর পোস্টব্যাকগুলি পরিচালনা করার জন্য কোডটি লিখি।

const অনুরোধ = প্রয়োজনীয় ('অনুরোধ'); কনস্ট সেন্ডারঅ্যাকশন = প্রয়োজনীয় ('../ টেমপ্লেট / সেন্ডারঅ্যাকশন'); কনট সেন্ডমেসেজ = প্রয়োজনীয় ('../ টেমপ্লেট / সেন্ড ম্যাসেজ');
মডিউল.এক্সপোর্টস = ফাংশন প্রক্রিয়াপোস্টব্যাক (ইভেন্ট) {
কনস্ট প্রেরক ID = ইভেন্ট.sender.id; কনস্ট পেইড = ইভেন্ট.পোস্টব্যাক.পেইলোড; যদি (পেলোড === 'স্বাগত') {অনুরোধ ({url: "https://راف.facebook.com/v2.6/" + প্রেরক, qs: {অ্যাক্সেস_ টোকেন: প্রক্রিয়া.এনভি.পি.পি.এফ.সি.সি.এস.এস.এস.কি.এস.কি., ক্ষেত্র: "প্রথম নাম "}, পদ্ধতি:" GET "}, ফাংশন (ত্রুটি, প্রতিক্রিয়া, দেহ) {অভিবাদন দিন = ''; যদি (ত্রুটি) {কনসোল.অরর (" ব্যবহারকারীর নাম পেতে ত্রুটি: "+ ত্রুটি);} অন্যথায় {বডিঅবজেক্ট দিন = JSON.parse (বডি); কনসোল.লগ (বডিঅজেক্ট); নাম = বডিঅবজেক্ট.ফার্টি_নাম; গ্রিটিং = "হ্যালো" + নাম + "।";}
     যাক বার্তা = শুভেচ্ছা + "হেলথবোটে আপনাকে স্বাগতম Hope আশা করি আপনি আজ ভাল করছেন";
     বার্তা 2 = "আমি আপনার পুষ্টি ট্র্যাকার :-)"
     আসুন বার্তা 3 = "আপনার পছন্দ মতো টাইপ করুন: আমি মুরগির বিরেয়ানি এবং ডালের সাথে 2 টি চাপাতি খেয়েছি" ";
senderAction (senderID); সেন্ডম্যাসেজ (প্রেরণকারী, {পাঠ্য: বার্তা})। তারপরে (() => M সেন্ডম্যাসেজ (প্রেরক আইডি, {পাঠ্য: ম্যাসেজ 2।)। তারপরে (() => {সেন্ডম্যাসেজ (প্রেরণকারী, {পাঠ্য: ম্যাসেজ 3})। তারপর (( ) => {সেন্ডম্যাসেজ (প্রেরকআইডি, {পাঠ্য: ''});}););}); }); }}

এখন এটি আমাদের নতুন যুক্ত কোডটি সার্ভারে ঠেলে দেওয়ার সময়

গিট অ্যাড গিট কমিট-এম "আপনার কমিট বার্তা" গিট পুশ আদি মাস্টার

যদি সবকিছু ঠিকঠাক কাজ করে তবে আপনি শুরু করুন বোতামটি ক্লিক করার পরে এই জাতীয় প্রতিক্রিয়া পাবেন।

শুরুতে আমি উল্লেখ করেছিলাম যে আমরা আপনার কথোপকথনে কিছু অ্যানিমেশন যুক্ত করব এবং এটি হ্যাক ধরণের একটি আরও কিছু বিষয় যেখানে সেন্ডএপিআইয়ের মাধ্যমে ইমোটিকনগুলি পাঠিয়ে স্ক্রিনে কিছু অ্যানিমেশন প্রদর্শিত হবে

সেন্ডম্যাসেজ (প্রেরণকারী, {পাঠ্য: ''});

এখন যেহেতু আমরা ব্যবহারকারীকে সালাম জানিয়েছি আসুন আমরা ব্যবহারকারীর প্রতিক্রিয়া পাঠ্যটি পরিচালনা করি। আপনার ম্যাসেজ.জেএস ফাইল এ যান এবং নিম্নলিখিত কোডের টুকরো যুক্ত করুন।

const অনুরোধ = প্রয়োজনীয় ('অনুরোধ'); কনস্ট সেন্ডারঅ্যাকশন = প্রয়োজনীয় ('../ টেমপ্লেট / সেন্ডারঅ্যাকশন'); কনট সেন্ডমেসেজ = প্রয়োজনীয় ('../ টেমপ্লেট / সেন্ড ম্যাসেজ'); কনট সেন্ডজেনেরিকটেম্পলেট = প্রয়োজনীয় ('../ টেমপ্লেট / সেন্ডজেনেরিকটেম্পলেট');
মডিউল.এক্সপোর্টস = ফাংশন প্রক্রিয়া মেসেজ (ইভেন্ট) {যদি (! ইভেন্ট.message.is_echo) {কনস্ট ম্যাসেজ = ইভেন্ট.মেসেজ; কনস্ট প্রেরক ID = ইভেন্ট.sender.id; কনসোল.লগ ("প্রেরকের আইডি থেকে প্রাপ্ত বার্তা:" + প্রেরকআইডি); কনসোল.লগ ("বার্তাটি হ'ল:" + JSON.stringify (বার্তা)); যদি (message.text) {// এখন আমরা প্রাপ্ত পাঠ্যটি নিয়ে যাব এবং এটি একটি খাদ্য ট্র্যাকিং এপিআইতে প্রেরণ করব। পাঠ্য = বার্তা.টেক্সট; চলুন অনুরোধ = প্রয়োজনীয় ("অনুরোধ"); আসুন বিকল্পগুলি = {পদ্ধতি: 'পোস্ট', url: 'https://mefit-preprod.herokuapp.com/api/getnutritionvalue', শিরোনাম: c 'ক্যাশে-নিয়ন্ত্রণ': 'নো-ক্যাশে', 'বিষয়বস্তুর ধরণ' : 'অ্যাপ্লিকেশন / জেসন'}, বডি: {ইউজারআইডি: প্রসেস.এনভি.ইউসিআরআইডি, সার্চটার্ম: টেক্সট}, জেসন: ট্রু};
অনুরোধ (বিকল্প, ফাংশন (ত্রুটি, প্রতিক্রিয়া, দেহ)) {যদি (ত্রুটি) নতুন ত্রুটি (ত্রুটি) ফেলে দেয়; প্রেরক অ্যাকশন (সেন্ডারআইডি); // প্রতিক্রিয়া পুনরুদ্ধার হওয়ার পরে আমরা জেনেরিক টেমপ্লেটে সেন্ডজেনেরিকটেম্পলেট (সেন্ডারআইডি, বডি) পাঠাব );
}); }}}

আমরা এমন একটি API ব্যবহার করব যা স্ট্রিংটিকে ইনপুট চেষ্টা হিসাবে গ্রহণ করে এবং এর থেকে খাদ্য আইটেমগুলিকে তার পুষ্টির মান সনাক্ত করে। এবং তারপরে API- এর প্রতিক্রিয়াটি আমাদের ফাংশন সেন্ডজেনারিকটেম্পলেট () এ প্রেরণ করুন এবং প্রতিক্রিয়াটি প্রদর্শন করতে একটি টেম্পলেট তৈরি করবে।

const অনুরোধ = প্রয়োজনীয় ('অনুরোধ');
মডিউল.এক্সপোর্টস = ফাংশন সেন্ডজেনেরিকটেম্পলেট (প্রাপকআইডি, রেসবিডি) so কনসোল.লগ (রেসবিডি); কনট নিউট্রিশনালভ্যালু = []; এর জন্য (যাক i = 0; i <রেসপোডি। দৈর্ঘ্য; i ++) for // আমি ব্যবহার করতে চাই না প্রতিটি আইটেম = {"শিরোনাম": রেসপোডি [i] .ফুড_নাম, "চিত্র_আরল": রেসবিডি [i]। থাম্বনেইল, " উপশিরোনাম ": 'মোট ক্যালোরি:' + রেসবিডি [i]। মোট_ক্যালরিগুলি +" \ n "+ 'প্রোটিন:' + রেসবাডি [i]। প্রোটিন +" \ n "+ 'কার্বোহাইড্রেট:' + রেসবিডি [i]। মোট_ক্যারোহাইড্রেট,
} নিউট্রিশনভ্যালু.পুশ (আপত্তি); message বার্তাডাটা = attach "সংযুক্তি": type "প্রকার": "টেমপ্লেট", "পেলোড": template "টেম্পলেট_প্রকার": "জেনেরিক", "উপাদানগুলি": নিউট্রালভ্যালু}}}
অনুরোধ ({url: 'https://راف.facebook.com/v2.6/me/messages', কিউএস: {অ্যাক্সেস_ টোকেন: প্রসেস.এনভি.পি.পি.এক্স.সি.এস.এস.এস.কি.এস.কি.কি. method, পদ্ধতি: 'পোস্ট', জেএসন: ip প্রাপক: {আইডি : প্রাপকআইডি message, বার্তা: বার্তা: ডেটা,}}, ফাংশন (ত্রুটি, প্রতিক্রিয়া, দেহ) {যদি (ত্রুটি) {কনসোল.লগ ("বার্তা প্রেরণে ত্রুটি:" + প্রতিক্রিয়া.অরর)}})}
আপনি https://github.com/soulreaper02/facebook-bot-demo থেকে আসল কোডটি ক্লোন করতে পারেন।
এখন আমাদের সময়টি আমাদের বটকে কার্যকরভাবে দেখার জন্য।

এবং আমরা শেষ পর্যন্ত এই টিউটোরিয়ালটির শেষে এসেছি কিভাবে নোড জেএস ব্যবহার করে আপনার নিজের ফেসবুক মেসেঞ্জার বটটি স্ক্র্যাচ থেকে তৈরি করবেন। সুতরাং আমরা মূলত কীভাবে দুটি ভিন্ন ধরণের ইভেন্টগুলি যেমন পোস্টব্যাক এবং বার্তাগুলি পরিচালনা করতে পারি তা coveredেকে দিয়েছি, আমরা টাইপিং সূচকগুলি ব্যবহার করেছি, একটি প্রারম্ভিক বোতাম যুক্ত করেছি, একটি বেলুন অ্যানিমেশন রেখেছি এবং আমাদের ডেটা দেখানোর জন্য একটি গতিশীল কার্ড টেম্পলেট তৈরি করেছি। আমি আশা করি আপনি এটি পছন্দ করেন এবং আপনি যদি দয়া করে সমস্ত ক্লিপগুলি দিতে পারেন দয়া করে।

আরো দেখুন

আমি কীভাবে আমার ইনস্টাগ্রাম বায়োতে ​​কয়েকটি লিঙ্ক ভাগ করতে পারি?আমি ইনস্টাগ্রামে নিজের একটি নকল প্রোফাইল পেয়েছি। সেই ব্যক্তি আমার সাথে এখনও যোগাযোগ করেনি (এখনও)। আমি কি সেই ব্যক্তির সাথে কথা বলার চেষ্টা করব এবং কে তা কে খুঁজে বের করা উচিত বা তাত্ক্ষণিকভাবে এটি রিপোর্ট করা উচিত?স্ন্যাপচ্যাটে যে সমস্ত সেলিব্রিটিদের অনুসরণ করা হচ্ছে তাদের কি স্ন্যাপচ্যাটকে জবাব দেওয়ার মতো সময় আছে?আমি কীভাবে আমার নতুন ফোন হোয়াটসঅ্যাপ অ্যাপে গুগল ড্রাইভ থেকে আমার রপ্তানি করা হোয়াটসঅ্যাপ চ্যাটগুলি পুনরুদ্ধার করব বা ফিরে পাব?তিনি আমাকে এখনও ভাল জানেন না, তবে আমি যখন তাকে স্ন্যাপচ্যাট করি, এবং তিনি সবসময় তুলনামূলকভাবে শীঘ্রই উত্তর দেন, তবে এটি কোনও শব্দ ছাড়াই কেবল একটি পিক, তিনি লাইনগুলি করেন না তবে এখন আমার কাছে আমার লাইনগুলি অনুকরণ করার পরেও আমার কাছে স্ট্রাইকগুলি প্রেরণ করে স্টাইল, সে কি আমাকে কিছুটা পছন্দ করে?আমার বয়ফ্রেন্ড স্বীকার করে যে সে যখন আমার দিকে পাগল হয় তখন অন্যান্য মহিলাদের দিকে নজর দেওয়ার জন্য স্নাপচ্যাটটি ডাউনলোড করে। আমি কি তাকে ফেলে দেব?কেন একজন নরসিস্ট একজন কাউকে একটি হোয়াটসঅ্যাপ ডিফলক করবে, কিন্তু সেই ব্যক্তিকে তার দ্বিতীয় হোয়াটসঅ্যাপ অ্যাকাউন্টে অবরুদ্ধ করে রাখে এবং দ্বিতীয়টি 24/7 এ অনলাইনে থাকে?হোয়াটসঅ্যাপ বলছে আপনার কথোপকথনটি এখন এনক্রিপ্ট করা আছে, তাহলে এর আগে কী ছিল?