Ich versuche, ein NESTED beständiges Menü zu meinem Chatbot hinzuzufügen. Facebook hat eine Grenze von 3 Tasten, aber Sie können eine verschachtelte Taste mit maximal 5 Tasten haben.Facebook Messenger Nested Persistent Menü Fehler
Dies ist der Fehler, den ich bekomme, wenn ich meinen Code ausführen ist
response body error
type: 'OAuthException',
Error: { message: '(#100) Invalid keys "call_to_actions" were found in param "call_to_actions[0]".', code: 100}
Hier mein Code:
function addPersistentMenu(){
request({
url: "https://graph.facebook.com/v2.6/me/thread_settings",
qs: {access_token: token},
method: "POST",
json:{
setting_type : "call_to_actions",
thread_state : "existing_thread",
call_to_actions : [
{
type: "nested",
title: "Menu Item One",
call_to_actions: [
{
type: "postback",
title: "Nested Item One",
payload: "NESTED_ONE"
},
{
type: "postback",
title: "Nested Item Two",
payload: "NESTED_TWO"
}
]
},
{
type: "postback",
title: "Menu Item Two",
payload: "TWO"
},
{
type: "postback",
title: "Menu Item Three",
payload: "THREE"
}
]
}
}, function(error, response, body) {
if(error){
console.log('sending error')
console.log('Error sending messages: ', error)
}else if(response.body.error){
console.log('response body error')
console.log('Error: ', response.body.error)
}
});
}
Wenn ich die verschachtelte Taste, die persistent Menü zu entfernen, erscheint Ich bin so nicht sicher, was der Fehler ist. Mein Code ist dem von Facebook geposteten Beispiel in ihrem persistent menu doc ziemlich ähnlich. Ich programmiere mit node.js, gehostet auf Heroku und ich modellierte meine Menüfunktion nach the code found here.
Frage: Hat jemand dies mit einem nodejs Webhook mit dem npm Anfragepaket getan, um Anfragen an Messenger zu senden? Wie füge ich mein verschachteltes persistentes Menü hinzu und was bedeutet dieser Fehler?
Bearbeiten: Wenn ich einen direkten CURL POST über das Terminal mit dem genauen Befehl in der persistenten Menü-Dokumentation verwenden, wird das verschachtelte persistente Menü hinzugefügt. Ich bin mir nicht sicher, was ich meiner Nodejs-Webhook-Version dieser Anfrage hinzufügen soll, damit es funktioniert.
Dies ist der ROTATION-Befehl:
curl -X POST -H "Content-Type: application/json" -d '{
"persistent_menu":[
{
"locale":"default",
"composer_input_disabled":true,
"call_to_actions":[
{
"title":"My Account",
"type":"nested",
"call_to_actions":[
{
"title":"Pay Bill",
"type":"postback",
"payload":"PAYBILL_PAYLOAD"
},
{
"title":"History",
"type":"postback",
"payload":"HISTORY_PAYLOAD"
},
{
"title":"Contact Info",
"type":"postback",
"payload":"CONTACT_INFO_PAYLOAD"
}
]
},
{
"type":"web_url",
"title":"Latest News",
"url":"http://petershats.parseapp.com/hat-news",
"webview_height_ratio":"full"
}
]
},
{
"locale":"zh_CN",
"composer_input_disabled":false
}
]
}' "https://graph.facebook.com/v2.6/me/messenger_profile?access_token=YOUR_ACCESS_TOKEN_HERE"
Vielen Dank! Ich habe versucht, den Knoten Js-Code und ich sehe nicht meine Schaltfläche "Los geht's" oder das Menü. Ich bekomme diese Fehlermeldung nicht mehr. und die gesendete JSON-Antwort zeigt nur {"object": "Object"} anstelle von {"result": "Erfolgreich die CTAs von new_thread hinzugefügt"} –
Erneut versucht. Keine Änderungen vorgenommen. Nur entfernt die Schaltfläche "Erste Schritte" und Menü-ID versucht, zuvor hinzuzufügen. Es funktionierte. –
Ich habe bemerkt, dass das persistente Menü seinen Zustand zwischenspeichert. Wenn Sie die Seite erneut laden oder die App neu starten, müssen Sie manchmal Updates sehen –