موصى به, 2021

اختيار المحرر

كيفية إنشاء تطبيق Facebook Messenger Bot (الدليل)

لا تعتبر ميزة "برامج التتبع" الخاصة بـ Facebook شيئًا جديدًا ، وهناك الكثير من برامج التتبع الرائعة بالفعل. ومع ذلك ، فإن الموارد المتعلقة بكيفية بناء روبوتك الخاص جدًا نادرة ، وتفتقد إلى التفسير للأشخاص الجدد في واجهة برمجة تطبيقات الرسم البياني على Facebook. تتطلب برامج bots المراسلة الآن استخدام عنوان URL لرد الاتصال عن طريق الويب SSL مضمون (أكثر من ذلك لاحقًا) ، وإعداد SSL ليس للجميع ، ويكلف أيضًا المال.

في هذه المقالة ، سوف أشاهدك خلال عملية إنشاء روبوت بسيط لـ Facebook messenger ، لأن وثائق فيس بوك الخاصة بها لا تفسر بشكل واضح. سنقوم بإعداد تطبيق سحابي يستخدم بروتوكول https ، ورمز البوت في Node.js (وهي لغة جافا سكريبت ، لغة من جانب الخادم) ، واستخدام git لدفع الكود إلى تطبيق السحابة ، واختباره على Facebook Messenger.

الإعداد بوت

ستحتاج إلى تثبيت عقدة على الكمبيوتر المحمول الخاص بك. إذا لم تقم بذلك ، فانتقل إلى موقع ويب Node لتنزيله وتثبيته.

بمجرد الانتهاء ، يمكنك متابعة إعداد برنامج الروبوت. اتبع الخطوات التالية:

1. إطلاق المحطة.

2. أنت بحاجة إلى دليل منفصل لعقد شفرتك.

  • جعل دليل جديد
    mkdir testbot
  • تغيير دليل العمل الخاص بك إلى الدليل الذي قمت بإنشائه
    cd testbot

3. بعد ذلك ، قم بتهيئة تطبيق Node.
npm init

  • سيُطلب منك إدخال معلومات حول تطبيقك ، ما عليك سوى استخدام الإعدادات الافتراضية بالضغط على Enter لكل شيء.

4. تثبيت الحزم
npm install express body-parser request --save

  • سيتم تشغيل الأمر وإعطاء بعض التحذيرات. تجاهلهم.

5. في Finder ، افتح الدليل " testbot " الذي أنشأته ، وابحث عن الملف المسمى " package.json " ؛ افتح هذا في محرر مثل Sublime Text.

6. في هذا الملف ، نحتاج إلى إضافة سطر
"start": "node index.js"

  • لا تنسَ إلحاق "،" في نهاية السطر السابق.

7. بعد ذلك ، قم بإنشاء ملف جديد في نص Sublime ، ثم ضع التعليمات البرمجية التالية داخله:

[شبيبة]

var express = requires ("express")؛
var bodyParser = يتطلب ('body-parser') ؛
طلب var = يتطلب ("الطلب") ؛
var app = express ()؛

app.use (bodyParser.urlencoded ({extended: false}))؛
app.use (bodyParser.json ())؛
app.listen ((process.env.PORT || 3000))؛
app.get ('/'، function (req، res) {
res.send ('This is 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 ("رمز التحقق غير صحيح") ؛
}
})؛

[/ شبيبة]

احفظ هذا الملف كـ index.js

ملاحظة: في السطر 13 ، يتم تعيين قيمة "hub.verify_token" كـ " testbot_verify_token" ، تذكر هذه القيمة حيث سيتم استخدامها عند إنشاء webhook في Facebook.

إنشاء مستودع Git

الآن بعد أن قمنا بإعداد معالجة رد الاتصال الخاصة بنا ، نحتاج إلى دفع الرمز إلى Heroku. لذلك ، نحتاج إلى إنشاء مستودع git في دليلنا.

ملاحظة: "git" هو نظام تحكم في النسخ للملفات وكود البرنامج. يمكنك قراءة المزيد عنها في ويكيبيديا.

إن إنشاء مخزن git أمر سهل ، ولا يستغرق سوى أمرين من الأوامر الطرفية.

ملاحظة: تأكد من وجودك داخل دليل " testbot " في المحطة الطرفية. يمكنك القيام بذلك عن طريق كتابة الأمر pwd في المحطة الطرفية.

اتبع هذه الخطوات لإنشاء مستودع git:

1. git init

2. git add .

3. git commit -m "Register Facebook Webhook"

الإعداد Heroku

قبل أن نذهب إلى صفحات مطوري Facebook ، نحتاج إلى عنوان URL للاتصال يمكن لـ Facebook التحدث إليه. يحتاج عنوان URL هذا إلى استخدام بروتوكول https ، مما يعني أننا نحتاج إلى تثبيت شهادة SSL على موقعنا على الويب ؛ ولكن ، هذا هو دليل المبتدئين لبرامج التتبع في Facebook messenger ، لذلك دعونا لا نعقد الأمور. سنستخدم Heroku لنشر الكود الخاص بنا. يمنحك Heroku عناوين URL لـ https لتطبيقاتك ولديه خطة مجانية تلبي مطالبنا (الأساسية جدًا).

انتقل إلى موقع Heroku وسجل نفسك.

ملاحظة: في الحقل "اختيار لغة التطوير الأساسية" ، استخدم "أنا استخدم لغة أخرى".

بمجرد الانتهاء من ذلك ، قم بتثبيت أداة Heroku الخاصة بنظام التشغيل الخاص بك (Mac ، بالنسبة لي) ، وقم بتثبيته. هذا سيعطيك الوصول إلى Heroku على الطرفية الخاصة بك (أو موجه الأوامر ، على Windows).

بعد ذلك ، سننشئ تطبيقًا على Heroku ، والذي سيحمل الشفرة الكاملة لبوتنا. اتبع الخطوات التالية:

1. إطلاق المحطة

2. اكتب heroku login

  • سيُطلب منك إدخال بريدك الإلكتروني وكلمة المرور.
  • اكتب بريدك الإلكتروني ، اضغط على Enter ، ثم اكتب كلمة المرور الخاصة بك ، واضغط على Enter.
  • سيتم تسجيل الدخول إلى heroku

3. اكتب heroku create

  • سيؤدي ذلك إلى إنشاء تطبيق على Heroku وتزويدك برابط تشعبي. لاحظ أن الرابط يستخدم بروتوكول https. قراءة سهلة؟

4. الآن يمكنك دفع رمز التطبيق الخاص بك إلى Heroku
git push heroku master

5. بمجرد الانتهاء من ذلك ، يكون تطبيقك بشكل مباشر ، ويمكنك زيارة الرابط في متصفحك للتأكد من أن كل شيء يعمل بشكل جيد. يجب أن تفتح صفحة ويب تقول " هذا هو خادم TestBot ".

إعداد Facebook

حان الوقت لتوصيل بوتنا إلى Facebook! ستحتاج إلى إنشاء صفحة Facebook جديدة أو استخدام صفحة موجودة تملكها. سأوضح لك كيفية المتابعة من خلال إنشاء صفحة Facebook جديدة.

1. الذهاب إلى الفيسبوك وإنشاء صفحة جديدة.

  • يمكنك إنشاء صفحة في أي فئة تريدها. أنا أختار الشركة / المؤسسة ، بدون سبب معين.

2. الخطوات التالية التي يعرضها Facebook هي اختيارية ، ويمكن تخطيها.

3. بعد ذلك ، توجه إلى موقع مطوري Facebook.

  • في الجزء العلوي الأيسر ، مرّر مؤشر الماوس على " تطبيقاتي " ، ثم انقر على " إضافة تطبيق جديد " من القائمة المنسدلة.

  • انقر على " الإعداد الأساسي " عندما يطالبك Facebook باختيار نظام أساسي.

4. املأ تفاصيل اسم التطبيق وعنوان البريد الإلكتروني للاتصال بك.

  • حدد " تطبيقات للصفحات " في الفئة.
  • انقر على " إنشاء معرف التطبيق ".

5. سيتم نقلك إلى لوحة التحكم لتطبيقك. في الشريط الجانبي ، انتقل إلى " + إضافة منتجات " وحدد " Messenger " بالنقر فوق الزر " البدء ".

6. حدد " إعداد Webhooks ".

7. املأ الحقول المطلوبة ، مع استبدال "عنوان URL الخاص بالاستدعاء" بعنوان URL لتطبيق Heroku ، وتحقق من الرمز المميز مع الرمز المميز المستخدم في ملف index.js ، وحدد حقول الاشتراك التالية:

  • message_deliveries
  • رسائل
  • message_optins
  • messaging_postbacks

ملاحظة: تأكد من إلحاق " / webhook " بعنوان URL الخاص بالاستدعاء بحيث يقوم index.js بتنفيذ الوظيفة المطلوبة عندما يحاول فيس بوك اختبار عنوان URL ، يمكنه التحقق من "التحقق من الرمز المميز".

8. انقر على " التحقق والحفظ ".

9. في قسم " Token Generation " ، انقر فوق " تحديد صفحة " وحدد الصفحة التي قمت بإنشائها في وقت سابق.

سيؤدي هذا إلى إنشاء " رمز الوصول إلى الصفحة " ، وحفظه في مكان ما ؛ ستحتاجه لاحقا.

10. بعد ذلك ، سيكون عليك إجراء استعلام POST على تطبيقك ، باستخدام صفحة Access Token التي تم إنشاؤها في الخطوة الأخيرة. هذا يمكن القيام به بسهولة في المحطة. ما عليك سوى تشغيل الأمر التالي ، مع استبدال PAGE_ACCESS_TOKEN برمز الوصول إلى الصفحة الذي أنشأته .

curl -X POST "//graph.facebook.com/v2.6/me/subscribed_apps؟access_token=PAGE_ACCESS_TOKEN"

يجب أن تتلقى استجابة " النجاح " في المحطة.

أكثر Heroku الإعداد

نعم ، لم ننته بعد. ليس تقريبا.

1. انتقل إلى موقع Heroku وتسجيل الدخول باستخدام معرف البريد الإلكتروني الخاص بك.

2. حدد موقع تطبيقك في "لوحة البيانات" وانقر عليه.

3. انتقل إلى علامة التبويب الإعدادات.

4. انقر على " الكشف عن تكوين التهيئة "

5. أضف PAGE_ACCESS_TOKEN كـ " config var " ، وانقر على " إضافة ".

ترميز بوت الفعلي

والآن بعد أن انتهينا من العمل الناخر ، يمكننا التركيز على ما يهم بالفعل: جعل الروبوت يستجيب للرسائل. لكي نبدأ ، سنقوم فقط بتصميم روبوت يكرر ببساطة الرسائل التي يتلقاها. كما تبين ، تتطلب هذه المهمة البسيطة جزءًا كبيرًا من الشفرة لتعمل.

1. ترميز مستمع الرسائل

قبل أن يتمكن صدى البوت من إرجاع الرسالة ، يجب أن يكون قادراً على الاستماع للرسائل. دعونا نفعل ذلك أولا.

في ملف index.js ، أضف الشفرة التالية:

[شبيبة]

app.post ('/ webhook'، function (req، res) {
var events = req.body.entry [0].
لـ (i = 0؛ i <events.length؛ i ++) {
var event = events [i]؛
if (event.message && event.message.text) {
sendMessage (event.sender.id ، {text: "Echo:" + event.message.text})؛
}
}
res.sendStatus (200)؛
})؛

[/ شبيبة]

ما تقوم به هذه الوظيفة ، هو فحص الرسائل المستلمة ، ثم يتحقق مما إذا كان هناك نص في الرسالة. إذا وجدت نصًا في الرسالة المستلمة ، فإنها تستدعي وظيفة sendMessage (تظهر لاحقًا) ، وتمرير معرف المرسل والنص لإرساله مرة أخرى. من المهم فهم القيم التالية وما تعنيه:

  • event.message.text هو النص المستلم في الرسالة. على سبيل المثال ، إذا أرسل شخص ما رسالة "مرحباً" إلى روبوتنا ، فإن قيمة event.message.text ستكون "Hello".
  • event.sender.id هو معرف الشخص الذي أرسل الرسالة إلى البوت. هذا مطلوب حتى يعرف البوت من يخاطب الرد.

2. ترميز وظيفة sendMessage

يتيح رمز وظيفة "sendMessage" ، الآن.

[شبيبة]

وظيفة sendMessage (مستلم ، رسالة) {
طلب({
url: //graph.facebook.com/v2.6/me/messages '،
qs: {access_token: process.env.PAGE_ACCESS_TOKEN} ،
الطريقة: "POST" ،
جسون: {
المتلقي: {id: recipientId} ،
الرسالة: الرسالة ،
}
} ، وظيفة (خطأ ، استجابة ، نص) {
إذا (خطأ) {
console.log ('خطأ في إرسال الرسالة:' ، خطأ) ؛
} آخر إذا كان (response.body.error) {
console.log ('Error:'، response.body.error)؛
}
})؛

[/ شبيبة]

تأخذ الدالة "sendMessage" معلمتين:

  • recipientId
  • رسالة

مطلوب المستلمين بحيث يمكن توجيه الرسالة إلى المستخدم الصحيح.

الرسالة هي النص الفعلي الذي سيتم إرساله في الاستجابة.

3. دفع التغييرات إلى Heroku

إذا كنت قد أكملت الخطوات المذكورة أعلاه ، فيجب أن يتمكن برنامج الروبوت الخاص بك من إرجاع النص المستلم. ولكن أولا ، لديك لدفع التغييرات إلى التطبيق استضافتها على Heroku. للقيام بذلك ، اتبع الخطوات الواردة أدناه:

1. إطلاق المحطة.

2. قم بتغيير الدليل إلى دليل testbot الخاص بك
cd testbot

3. قم بالخطوات التالية:

  • غيت اضيف.
  • ملاحظة: يوجد "." في نهاية "git add"
  • git commit -m “First commit”
  • بوابة دفع heroku الرئيسي

4. الآن أرسل رسالة إلى صفحتك ، وسوف يردد البوتك الرسالة مرة أخرى إليك.

الردود المشروطة الملقب جعل بوت أذكى

يمكننا استخدام مطابقة النص للسماح لبرنامج batcher الخاص بنا على Facebook بالاستجابة وفقًا لبعض الكلمات الأساسية الخاصة.

لتحقيق ذلك ، نحتاج إلى إضافة وظيفة أخرى. أسميها "conditionalResponses" ، ولكن يمكنك اختيار أي اسم تفضله.

1. ترميز وظيفة conditionalResponses

[شبيبة]

function conditionalResponses (recipientId، text) {
نص = نص || ""؛

var what = text.match (/ what / gi)؛ // check if string string contains the word "what"؛ تجاهل القضية
varGadget-Info.com = text.match (/ beebom / gi) ؛ // تحقق مما إذا كانت السلسلة النصية تحتوي على كلمة "beebom" ؛ تجاهل القضية
var who = text.match (/ who / gi)؛ // check if string string contains the word "who"؛ تجاهل القضية
var you = text.match (/ you / gi)؛ // تحقق مما إذا كانت السلسلة النصية تحتوي على كلمة "أنت" ؛ تجاهل القضية

// إذا احتوى النص على "ما" و "beebom" ، قم بما يلي:

if (what! = null &&؛ Gadget-Info.com! = null) {
الرسالة = {
النص: "Beebom هو موقع ويب يقدم موارد تقنية. مرحبًا بك."
}
sendMessage (مستلم ، رسالة) ؛
عاد صحيح
}

// إذا كان النص يحتوي على كل من "من" و "أنت" ، فقم بما يلي:
if (who! = null && you! = null) {
الرسالة = {
النص: "لقد طلب مني عدم مناقشة هويتي على الإنترنت."
}
sendMessage (مستلم ، رسالة) ؛
عاد صحيح
}

// إذا لم يتطابق شيء ، فأعد الزائف لمواصلة تنفيذ الوظيفة الداخلية.
عودة كاذبة؛

[/ شبيبة]

في السطور من 4 إلى 7 ، قمنا بتعريف المتغيرات بناءً على مطابقة السلسلة المستلمة مقابل كلمات معينة. أفضل جزء في استخدام "text.match ()" هو أنه يستخدم تعبيرات عادية (تسمى عادة regex ، اقرأ المزيد هنا). إنه أمر جيد بالنسبة لنا ، لأن هذا يعني أنه طالما أن جزءًا من كلمة في النص المستلم يتطابق مع أي من الكلمات التي ذكرناها في text.match () ، فلن يكون المتغير خاليًا. هذا يعني أنه إذا كانت الرسالة المستلمة "ما هو Beebom؟" ، "var what" و "var beebom" لن يكون خاليًا ، لأن كلمة "ماذا" تحتوي على كلمة "ماذا". لذلك يتم حفظها من إنشاء عبارات إضافية لكل صيغة قد يقول فيها شخص ما "ماذا".

2. تحرير مستمع الرسائل

كما نحتاج أيضًا إلى تحرير محرر رسائل تم تشفيره ، للتأكد من أنه يحاول مطابقة النص المستلم مع وظيفة "conditionalResponses" أيضًا.

[شبيبة]

app.post ('/ webhook'، function (req، res) {
var events = req.body.entry [0].
لـ (i = 0؛ i <events.length؛ i ++) {
var event = events [i]؛
if (event.message && event.message.text) {

/ / حاول أولاً التحقق مما إذا كانت الرسالة المستلمة مؤهلة للاستجابة الشرطية.
if (! conditionalResponses (event.sender.id، event.message.text)) {

// إذا لم يحدث ذلك ، ما عليك سوى تكرار الرسالة المستلمة مرة أخرى إلى المرسل.
sendMessage (event.sender.id ، {text: "Echo:" + event.message.text})؛
}
}
}
res.sendStatus (200)؛
})؛

[/ شبيبة]

قد لا تبدو التغييرات في المستمع جذرية للغاية ، ولكن آثارها بالتأكيد. الآن ، يحاول المستمع أولاً الاستجابة بالاستجابات الشرطية ، وإذا لم يكن هناك شرط صالح للرسالة المستلمة ، فإنه ببساطة يردد الرسالة مرة أخرى إلى المستخدم.

3. دفع التغييرات إلى Heroku

قبل أن تتمكن من تجربة الميزات الجديدة ، سيكون عليك دفع الشفرة المحدثة إلى التطبيق المستضاف على Heroku. اتبع الخطوات أدناه للقيام بذلك:

1. إطلاق المحطة.

2. قم بتغيير الدليل إلى دليل testbot الخاص بك
cd testbot

3. قم بالخطوات التالية:

  • غيت اضيف.
  • ملاحظة: يوجد "." في نهاية "git add"
  • git commit -m "إضافة إمكانات مشروطة"
  • بوابة دفع heroku الرئيسي

4. الآن أرسل رسالة إلى صفحتك ، وسوف يردد البوتك الرسالة مرة أخرى إليك.

حتى المزيد من الوظائف

الآن روبوتنا يستجيب لمجموعة صغيرة من الأوامر في استجابات لطيفة ومنظمة بشكل جيد. لكنها ما زالت غير مفيدة. لنقم بإجراء المزيد من التغييرات على الشفرة لجعل برنامجنا "برمجيات" أكثر فاعلية. سنقوم بتجديد الكثير من الوظائف ، وإضافة المزيد من الدرجات ، حتى نشعر بالإثارة.

1. تحرير مستمع الرسائل

مستمع الرسالة لدينا ، في هذه المرحلة ، يعمل فقط على ما يرام. ومع ذلك ، فإنه ليس جيدًا تنسيقًا جيدًا وإذا كنا سنستمر في زيادة العبارات المتداخلة لإضافة " فحوصات إضافية" إضافية ، فستصبح بسرعة قبيحة للنظر ، يصعب فهمها وأبطأ في التنفيذ. لا نريد ذلك ، الآن ، هل نحن؟ دعونا نجري بعض التغييرات.

ملاحظة: يوجد سطر من التعليمات البرمجية في وحدة إصغاء الرسائل يقرأ "res.sendStatus (200)" ، يرسل هذا السطر 200 رمزًا إلى Facebook ، ويخبره أن الوظيفة تم تنفيذها بنجاح. وفقًا لوثائق Facebook ، ينتظر Facebook لمدة أقصاها 20 ثانية للحصول على 200 حالة ، قبل أن يقرر أن الرسالة لم تنته وتوقف تنفيذ الشفرة.

مستمع الرسالة الجديد يبدو مثل هذا. نستخدم الأمر " res.sendStatus (200) " لإيقاف تنفيذ الوظيفة بمجرد مطابقة شرط وتنفيذه.

[شبيبة]

app.post ('/ webhook'، function (req، res) {
var events = req.body.entry [0].
لـ (i = 0؛ i <events.length؛ i ++) {
var event = events [i]؛
if (event.message && event.message.text) {

// أول رسالة نصية ضد شروط introResponse
if (introResponse (event.sender.id، event.message.text)) {
res.sendStatus (200)؛
}

/ / لعدم وجود اسم أفضل ، دعوت هذا newResponse: ف ؛ تحقق هذا المقبل
else if (newResponse (event.sender.id، event.message.text)) {
res.sendStatus (200)؛
}

// else ، فقط صدى الرسالة الأصلية
else {
// استبدال الصدى بقائمة الأوامر الصحيحة
sendMessage (event.sender.id ، {text: "Echo:" + event.message.text})؛
}
}
}
res.sendStatus (200)؛
})؛

[/ شبيبة]

2. ترميز وظيفة newResponse

يقوم مستمع الرسالة الآن بفحص نص الرسالة مقابل مجموعة من الشروط في "newResponse" أيضًا ، ولكننا نحتاج أولاً إلى ترميز وظيفة newResponse. سنستخدم هذه الوظيفة للتحقق مما إذا طلب المستخدم اقتراحات المقالة من الأداة - Info.comwebsite ، والبحث في مصطلح الاستعلام على موقع الويب ، وعرض الرابط للمستخدم. مرة أخرى ، سنستخدم تعبيرات عادية لمطابقة النص مع كلمات رئيسية محددة.

[شبيبة]

وظيفة newResponse (مستلم ، نص) {
نص = نص || ""؛
var suggest = text.match (/ suggest / gi)؛
var random = text.match (/ random / gi)؛
var article = text.match (/ article / gi)؛
var iphone = text.match (/ iphone / gi)؛
var android = text.match (/ android / gi)؛
var mac = text.match (/ mac / gi)؛
var browser = text.match (/ browser / gi)؛
var vpn = text.match (/ vpn / gi)؛

// check if user is ask for article suggestions at all
if (suggest! = null && article! = null) {
var query = ""؛
// إذا تم الاستعلام عن اقتراحات المقالة ، فتحقق من الموضوع الذي يبحث عنه المستخدم
إذا (android! = null) {
query = "Android"؛
} آخر في حالة (mac! = null) {
query = "Mac"؛
} آخر في حالة (iphone! = null) {
query = "iPhone"؛
} آخر إذا (المتصفح! = فارغة) {
query = "Browser"؛
} آخر إذا (vpn! = فارغة) {
query = "VPN"؛
}
sendButtonMessage (recipientId، query)؛
العودة الحقيقية
}
عودة كاذبة؛

[/ شبيبة]

نحن نستخدم وظيفة مخصصة أخرى تسمى "sendButtonMessage" لإرسال الرسالة في حال طلب المستخدم اقتراحات المقالة. سننشئ هذا بعد ذلك.

3. ترميز وظيفة sendButtonMessage

تأخذ الدالة sendButtonMessage معلمتين ومعرف المستلم واستعلام. يتم استخدام معرف المستلم لتحديد هوية المستخدم الذي يجب إرسال الرسالة إليه ، ويتم استخدام الاستعلام لتحديد الموضوع الذي يرغب المستخدم في الحصول على اقتراحات المقالة.

[شبيبة]

function sendButtonMessage (مستلم ، استعلام) {
var messageData = {
المستلم: {
id: المستلم id

الرسالة: {
المرفق: {
النوع: "القالب" ،
الحمولة: {
template_type: "زر" ،
النص: "هذا هو ما وجدته لـ" + استعلام ،
وصفت:[{
النوع: "web_url" ،
url: "//www.beebom.com/؟s="+query،
title: "Beebom:" + query
}]
}
}
}

callSendAPI (messageData)؛
}

[/ شبيبة]

مرة أخرى ، نحن نستخدم وظيفة مخصصة ؛ هذه المرة لإرسال الرسالة الأخيرة ، مع روابط المقالة ، إلى المستخدم. تشبه هذه الوظيفة ، بعدة طرق ، وظيفة "sendMessage" التي تم ترميزها في وقت سابق ، ولكنها أكثر عمومية في الطريقة التي تأخذ بها بيانات الرسالة ، التي تناسبنا ، لأن بيانات رسالتنا تتغير مع طلب البحث الذي يقوم به المستخدم.

4. ترميز وظيفة callSendAPI

تأخذ الدالة "callSendAPI" معلمة واحدة ، وهي "messageData" . تحتوي هذه المعلمة على بيانات الرسالة بالكامل ، المنسقة بشكل صحيح وفقًا لقواعد Facebook ، بحيث يمكن للرسول عرضها بشكل صحيح للمستخدم.

[شبيبة]

function callSendAPI (messageData) {
طلب({
uri: //graph.facebook.com/v2.6/me/messages '،
qs: {access_token: process.env.PAGE_ACCESS_TOKEN} ،
الطريقة: "POST" ،
json: messageData

} ، وظيفة (خطأ ، استجابة ، نص) {
if (! error && response.statusCode == 200) {
var recipientId = body.recipient_id؛
var messageId = body.message_id ،

console.log ("تم بنجاح إرسال رسالة عامة مع معرف٪ s إلى المستلم٪ s" ،
messageId، recipientId)؛
} آخر {
console.error ("غير قادر على إرسال الرسالة.")؛
console.error (الاستجابة).
console.error (خطأ)؛
}
})؛
}

[/ شبيبة]

5. دفع التغييرات إلى Heroku

نحن في الخطوة الأخيرة نحو جعل برنامج التتبع لدينا تمت ترقيته بشكل مباشر. نحن بحاجة فقط إلى دفع جميع التغييرات رمز إلى Heroku. العملية هي نفسها كما كانت من قبل ، وموضحة أدناه:

1. إطلاق المحطة.

2. قم بتغيير الدليل إلى دليل testbot .
cd testbot

3. قم بما يلي:

  • غيت اضيف.
  • ملاحظة: يوجد "." في نهاية ذلك الأمر.
  • git commit -m "تحسين فحص الشروط والتنسيق"
  • بوابة دفع heroku الرئيسي

4. أرسل الآن رسالة مثل "اقتراح مقالة على Android" ، أو "Beebom ، أقترح عليك أي مقال حول موضوع Android" ؛ وسيقوم برنامج التتبع بإرسال رسالة منسقة بشكل جيد تحتوي على رابط يمكنك النقر عليه لفتح المقالات ذات الصلة بطلب البحث.

أحفر أكثر عمقا

الآن بعد أن تعرفت على كيفية البدء في تطوير برامج التتبع الخاصة بـ Facebook messenger ، قم بالاطلاع على وثائق Facebook حول كيفية تطوير برامج التتبع الخاصة بـ Facebook messenger. في حين أن الوثائق ليست جيدة للمبتدئين ، فأنت لست مبتدئًا بعد الآن. يجب عليك التحقق من الوثائق الرسمية ومحاولة معرفة كيفية جعل بوتك أكثر ذكاءً. دعابة: يمكنك إرسال رسائل تحتوي على صور وأزرار كذلك! من الممكن أيضًا استخدام خدمات مثل Wit.ai و Api.ai لرمز برنامج الروبوت الخاص بك ثم دمجه مع Facebook ، ولكن في محاولاتي الضعيفة لاستخدام هذه الخدمات ، لا يعمل Wit.ai بشكل جيد ، و Api.ai لديه منحنى تعلم حاد للمبتدئين.

هل سبق لك أن طورت روبوت Facebook messenger؟ إذا كان لديك ، كيف ذهبت حول تطويره ، وماذا يمكن أن تفعل؟ هل استخدمت خدمات مثل Wit.ai و Api.ai لإنشاء برنامج الروبوت الخاص بك؟ إذا لم تجرِّب يديك على ترميز بوت ، فابدأ بتطوير روبوت Facebook الخاص بك ، واجعله أكثر ذكاءً وأفضل ، وأخبرنا بتجربتك في التعليقات أدناه.

Top