Προσπάθησα αποστολή του αιτήματος για αυτό το url
https://graph.facebook.com/v2.6/PAGE_ID/thread_settings?access_token=PAGE_ACCESS_TOKEN
Αλλά δεν λειτούργησε.
Προσπάθησα αποστολή του αιτήματος για αυτό το url
https://graph.facebook.com/v2.6/PAGE_ID/thread_settings?access_token=PAGE_ACCESS_TOKEN
Αλλά δεν λειτούργησε.
θα πρέπει να εκτελέσετε μια κατάλληλη εντολή μπούκλα να το δημιουργήσει. ελέγξτε αυτό το link και να δούμε το παράδειγμά τους. https://developers.facebook.com/docs/messenger-platform/implementation#send_api
ευχαριστίες για τις πολύτιμες παρατηρήσεις, μετά από κάποια λύση βρήκαν αυτό το εργασιακό λύση, σύμφωνα με τις κατευθυντήριες γραμμές facebook
πρέπει να στείλετε ένα ανεξάρτητο αίτηση POST σε αυτό το URL μόνο ΜΙΑ ΦΟΡΑ
https://graph.facebook.com/v2.6/PAGE_ID/thread_settings?access_token=PAGE_ACCESS_TOKEN
μεταχειρισμένα ταχυδρόμος για να στείλετε το αίτημα όπως αυτό
εδώ
Εάν η Ξεκινήστε κουμπί τέθηκε με επιτυχία, θα πάρετε την ακόλουθη απάντηση
{
"result": "Successfully added new_thread's CTAs"
}
Πραγματοποίηση κλήσης POST με API 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"
Μια καλύτερη λύση κατά τη γνώμη μου, είναι να χρησιμοποιήσετε το πλαίσιο της Microsoft Bot και η χρήση του / 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 φαίνεται όπως φαίνεται παρακάτω // καλεί το γράφημα api Facebook για να αλλάξετε τις ρυθμίσεις του bot
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. Λειτουργεί τέλεια σε bot μου ΕΔΩ
Είναι δυνατόν να το ρυθμίσετε με επιτυχία, αλλά δεν το βλέπουμε επειδή έχετε ήδη μια υπάρχουσα συνομιλία με τη σελίδα facebook.
Μετά την επιτυχή ρύθμιση της νήμα «Get Started», θα το δείτε μόνο αν διαγράψετε τα υπάρχοντα νήμα συνομιλία σας και να ξεκινήσετε ένα νέο.
Ξεκινήστε το κουμπί εμφανίζεται μόνο όταν αλληλεπιδρούν με τη σελίδα facebook, για πρώτη φορά, οπότε αν έχετε στείλει μήνυμα στο παρελθόν τη σελίδα, δεν θα είστε σε θέση να δείτε το «Get Started» εκτός και αν διαγράψετε το νήμα από τον πελάτη σας στο Facebook Messenger ( είτε κινητό ή σταθερό).
Από τα Έγγραφα FB Messenger:
Υπάρχουν ορισμένες προϋποθέσεις για να δει την οθόνη υποδοχής και τη Ξεκινήστε κουμπί:
- Θα παρέχονται μόνο την πρώτη φορά που ο χρήστης αλληλεπιδρά με την σελίδα στον Messenger
- Μόνο οι διαχειριστές / προγραμματιστές / δοκιμαστές της εφαρμογής μπορείτε να το δείτε όταν η εφαρμογή είναι σε κατάσταση ανάπτυξης
- Η εφαρμογή σας θα πρέπει να εγγραφεί σε postbacks για webhook σας
Υπάρχει μια βιβλιοθήκη στο NPM που τυλίγει τη λειτουργικότητα του POST / DELETE ενέργειες εδώ: 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_settingsAPI
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": [
{
"Ωφέλιμο φορτίο": "Start"
}
]
}
{
«Αποτέλεσμα»: «CTAs επιτυχία πρόσθεσε new_thread του»
}
Αποστολή αιτήματος μετά τη χρήση της σελίδας διακριτικό πρόσβασης σας
https://graph.facebook.com/v2.6/me/messenger_profile?access_token=YOUR-TOKEN
με τα ακόλουθα δεδομένα
{
"get_started":{
"payload":"<GET_STARTED_PAYLOAD>"
}
}
Έγγραφα Facebok: Ξεκινήστε Button
Ελπίζω αυτή η νέα μέθοδος να λύσει το πρόβλημά σας. Μην ξεχάσετε να διαγράψετε τα απεσταλμένα μηνύματα πρώτη χρήση του Facebook στο Web για να δείτε το κουμπί στη δράση.
Πολύ απλή λύση, απλά ανοίξτε το τερματικό και να πάει στη θέση του φακέλου που σας φιλοξενεί, (στη δική μου /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"
και πατήστε enter, φροντίστε να βάλετε σωστό κωδικό πρόσβασης σας, επίσης μπορείτε να αναγνωρίζουμε όταν ξεκινήσατε το κουμπί σας πιέζεται από το ωφέλιμο φορτίο που είναι GET_STARTED_PAYLOAD στο παραπάνω δείγμα κώδικα.