इस यूआरएल को भेजने से अनुरोध करने की कोशिश की
https://graph.facebook.com/v2.6/PAGE_ID/thread_settings?access_token=PAGE_ACCESS_TOKEN
लेकिन काम नहीं किया।
इस यूआरएल को भेजने से अनुरोध करने की कोशिश की
https://graph.facebook.com/v2.6/PAGE_ID/thread_settings?access_token=PAGE_ACCESS_TOKEN
लेकिन काम नहीं किया।
आप एक उचित कर्ल आदेश इसे सेट अप करने के लिए चलाने के लिए है। इस लिंक की जाँच और उनके उदाहरण को देखो। https://developers.facebook.com/docs/messenger-platform/implementation#send_api
मूल्यवान टिप्पणियों के लिए धन्यवाद, कुछ वैकल्पिक हल के बाद इस समाधान काम कर पाया, फेसबुक दिशा निर्देशों के अनुसार
केवल एक बार इस URL पर एक स्वतंत्र पोस्ट अनुरोध भेजने की जरूरत है
https://graph.facebook.com/v2.6/PAGE_ID/thread_settings?access_token=PAGE_ACCESS_TOKEN
प्रयुक्त डाकिया इस तरह अनुरोध भेजने के लिए
यहां
प्रारंभ करें बटन सफलतापूर्वक स्थापित किया गया था, तो आपको निम्न प्रतिसाद मिलेगा
{
"result": "Successfully added new_thread's CTAs"
}
नीचे के रूप में एपीआई JSON शरीर के लिए एक पोस्ट कॉल करें।
curl -X POST -H "Content-Type: application/json" -d '{
"setting_type":"call_to_actions",
"thread_state":"new_thread",
"call_to_actions":[
{
"payload":"USER_DEFINED_PAYLOAD"
}
]
}' "https://graph.facebook.com/v2.6/me/thread_settings?access_token=PAGE_ACCESS_TOKEN"
रेफरी: फेसबुक दूत बटन आरंभ
मेरी राय में एक बेहतर समाधान माइक्रोसॉफ्ट बॉट फ्रेमवर्क का उपयोग करें और दूत आरंभ करने के बटन को भेजने के लिए अपने / FirstRun उपयोग करने के लिए है
function firstRun(session) {
console.log('This user is running our bot the first time')
createUser(session)
platforms.firstRun(session.message.user.id, session.message.address.channelId)
.then((values) => {
for (let value of values) {
if (value.data.firstName && value.data.lastName) {
session.userData.user.profile = value.data
}
}
})
.catch((errors => {
console.log(errors);
}))
reply(session)
session.endDialog()
}
platforms.firstRun जिन्हें आप नीचे देख लग रहा है
platforms.firstRun = function (userId, channel) {
switch (channel) {
case platforms.channels.emulator:
return Promise.reject('none')
case platforms.channels.facebook:
return platforms.facebook.firstRun(userId)
case platforms.channels.skype:
return Promise.reject('none')
default:
return Promise.reject('none')
}
}
बदले में इस platforms.facebook.firstRun कॉल
platforms.facebook.firstRun = function (userId) {
return Promise.all([
platforms.facebook.sendThread(facebookTemplates.greet(), 'Greeting'),
platforms.facebook.sendThread(facebookTemplates.getStarted(), 'Get Started'),
platforms.facebook.sendThread(facebookTemplates.getPersistentMenu(), 'Persistent Menu'),
platforms.facebook.sendThread(facebookTemplates.getDomainWhitelisting(), 'Domain Whitelisting'),
platforms.facebook.getProfile(userId)
])
}
platforms.facebook.sendThread लग जिन्हें आप नीचे देख // फेसबुक ग्राफ एपीआई बॉट सेटिंग में बदलाव के लिए कॉल
platforms.facebook.sendThread = function (template, cmd) {
return new Promise((resolve, reject) => {
// Start the request
request({
url: platforms.facebook.GRAPH_BASE_URI + '/me/thread_settings?access_token=' + endpoints.FACEBOOK_PAGE_ACCESS_TOKEN,
method: 'POST',
headers: { 'Content-Type': 'application/json' },
form: template
},
function (error, response, body) {
if (!error && response.statusCode == 200) {
// Print out the response body
resolve({ status: response.statusCode, data: body })
} else {
// TODO: Handle errors
reject({ status: response.statusCode, data: error })
}
});
})
}
सूचना facebookTemplates.getStarted (), वास्तव में के लिए आरंभ करने के जो जैसा कि नीचे दिखाया लग रहा है json है
templates.getStarted = function () {
return {
setting_type: "call_to_actions",
thread_state: "new_thread",
call_to_actions: [
{
payload: payloads.FACEBOOK_GET_STARTED
}
]
}
}
सभी chatbot प्लेटफार्मों पर एक पहली बार चलाने आपरेशन प्रदर्शन करने के लिए पूरी तरह से प्लगेबल कोड वास्तुकला। मेरी बॉट पर पूरी तरह से काम करता है यहाँ
यह आप इसे सफलतापूर्वक सेट है, लेकिन यह नहीं देख रहे हैं क्योंकि आप पहले से फेसबुक पेज के साथ एक मौजूदा बातचीत संभव है।
सफलतापूर्वक "आरंभ करें" धागा स्थापित करने के बाद, आप केवल यह देखने के यदि आप अपने मौजूदा बातचीत थ्रेड हटा सकते हैं और एक नया एक शुरू कर देंगे।
शुरू कर दिया बटन केवल दिखाया गया है जब आप पहली बार के लिए फेसबुक पेज के साथ बातचीत कर रहे हैं हो जाओ, इसलिए यदि आप पहले से पेज संदेश भेजा है, तो आप को देखने के लिए "प्रारंभ करें" जब तक आप अपने फेसबुक मैसेंजर क्लाइंट से धागा हटाना सक्षम नहीं होगा ( या तो मोबाइल या डेस्कटॉप)।
से अमेरिकन प्लान मैसेंजर डॉक्स:
वहाँ स्वागत स्क्रीन और आरंभ करें बटन को देखने के लिए कुछ शर्तें हैं:
- वे केवल पहली बार उपयोगकर्ता मैसेंजर पर पेज के साथ सूचना का आदान प्रदान कर रहे हैं प्रदान की गई
- केवल व्यवस्थापक / डेवलपर्स / ऐप्लिकेशन के परीक्षकों इसे देख सकते हैं एप्लिकेशन विकास मोड में है
- आपका एप्लिकेशन को आपके webhook पर Postbacks की सदस्यता ली जानी चाहिए
NPM में एक पुस्तकालय है कि पोस्ट की कार्यक्षमता लपेटता है / यहाँ गतिविधियों को नष्ट: https://www.npmjs.com/package/fb-get-started-button
$ npm install -g fb-get-started-button
$ fb-get-started-button add <YOUR PAGE ACCESS TOKEN>
Adding "Get Started" button with the payload "GET_STARTED"
Successfully added new_thread's CTAs
$ fb-get-started-button remove <YOUR PAGE ACCESS TOKEN>
Removing "Get Started" button
Successfully deleted all new_thread's CTAs
वर्तमान प्रारूप, है https://graph.facebook.com/v2.6/me/messenger_profile?access_token=PAGE_ACCESS_TOKEN
{ "Get_started": { "पेलोड": "GET_STARTED_PAYLOAD"}}
हमारे मामले में, निम्नलिखित काम किया:
मारो thread_settingsएपीआई
https://graph.facebook.com/v2.6/me/thread_settings?access_token=<YOU FACEBOOK PAGE'S PAGE ACCESS TOKEN>
निम्न नमूना JSON उत्तीर्ण
{
"Setting_type": "call_to_actions",
"Thread_state": "new_thread",
"Call_to_actions": [
{
"पेलोड": "प्रारंभ"
}
]
}
{
"परिणाम": "सफलतापूर्वक जोड़ा new_thread के CTAs"
}
अपने पृष्ठ पहुँच टोकन का उपयोग कर एक पोस्ट अनुरोध भेजें
https://graph.facebook.com/v2.6/me/messenger_profile?access_token=YOUR-TOKEN
निम्न डेटा के साथ
{
"get_started":{
"payload":"<GET_STARTED_PAYLOAD>"
}
}
Facebok डॉक्स: प्रारंभ करें बटन
आशा है कि इस नई विधि आपकी समस्या का समाधान। पहले फेसबुक वेब का उपयोग कर कार्रवाई में बटन को देखने के लिए भेजे गए संदेश को हटाने के लिए मत भूलना।
बहुत ही सरल समाधान है, टर्मिनल में अभी खुला नहीं है और अपने मेजबान फ़ोल्डर स्थान पर जाते हैं, (खान में /var/www/html/booking/public/facebookbot) और निम्नलिखित कोड पेस्ट करें:
curl -X POST -H "Content-type: application/json" -d '{
"setting-type":"call_to_actions",
"thread_state":"new_thread",
"get_started":{
"payload":"GET_STARTED_PAYLOAD"
}
}' "https://graph.facebook.com/v2.6/me/messenger_profile?access_token=YOUR_ACCESS_TOKEN"
और प्रेस दर्ज करें, अपने सही पहुँच टोकन डाल करने के लिए सुनिश्चित करें, आप भी जब आपके आने शुरू हो गए बटन पेलोड जो ऊपर कोड नमूने में GET_STARTED_PAYLOAD है से दबाया पहचान सकते हैं।