wie man Setup-Taste in Facebook Messenger Bot „Erste Schritte“ und wenn Begrüßungsnachricht senden

stimmen
8

Loslegen

versucht, Senden an diese URL

https://graph.facebook.com/v2.6/PAGE_ID/thread_settings?access_token=PAGE_ACCESS_TOKEN

Aber hat nicht funktioniert.

Veröffentlicht am 27/06/2016 um 07:32
quelle vom benutzer
In anderen Sprachen...                            


10 antworten

stimmen
2

Sie haben einen entsprechenden curl Befehl ausführen um es einzurichten. überprüfen Sie diesen Link und schauen sich ihrem Beispiel. https://developers.facebook.com/docs/messenger-platform/implementation#send_api

Beantwortet am 28/06/2016 um 14:27
quelle vom benutzer

stimmen
3

Dank für die wertvollen Kommentare, fand Arbeits diese Lösung nach einigem Problem zu umgehen, wie pro Facebook-Richtlinien

brauchen eine unabhängige POST-Anfrage an diese URL senden nur einmal

https://graph.facebook.com/v2.6/PAGE_ID/thread_settings?access_token=PAGE_ACCESS_TOKEN

gebrauchter Postbote Anfrage wie folgt senden hier

Wenn die Erste-Taste erfolgreich gesetzt wurde, werden Sie die folgende Antwort erhalten

{
  "result": "Successfully added new_thread's CTAs"
}
Beantwortet am 30/06/2016 um 07:26
quelle vom benutzer

stimmen
13

Machen Sie einen POST-Aufruf API JSON Körper wie unten.

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"

Ref: Facebook Messenger - Taste loszulegen

Postman screentshot

Beantwortet am 01/07/2016 um 20:22
quelle vom benutzer

stimmen
0

Eine bessere Lösung ist meiner Meinung nach der Microsoft Bot-Framework verwenden und seine / FirstRun verwendet die Boten loszulegen Taste senden

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()
}

Die platforms.firstRun sieht wie folgt

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')
    }
}

Dies wiederum ruft 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)
    ])
}

Die platforms.facebook.sendThread sieht wie folgt // Ruft die Facebook Graph API Bot-Einstellungen zu ändern

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 })
                }
            });
    })
}

Beachten Sie die facebookTemplates.getStarted (), dass tatsächlich die json hat für den Einstieg, die wie unten aussieht gezeigt

templates.getStarted = function () {
    return {
        setting_type: "call_to_actions",
        thread_state: "new_thread",
        call_to_actions: [
            {
                payload: payloads.FACEBOOK_GET_STARTED
            }
        ]
    }
}

Komplett steckbare Code Architektur einen ersten Laufbetrieb in allen chatbot Plattformen durchzuführen. Funktioniert perfekt auf meinem bietet HIER

Beantwortet am 17/11/2016 um 16:24
quelle vom benutzer

stimmen
4

Es ist möglich, dass Sie es erfolgreich festgelegt, sondern sehen es nicht, weil Sie bereits über ein Gespräch mit der Facebook-Seite haben.

Nach dem erfolgreichen „Get Started“ Thread Einstellung, werden Sie sehen, es nur, wenn Sie Ihre bestehende Konversations-Thread löschen und eine neue starten.

Erste Schritte Schaltfläche wird nur angezeigt, wenn Sie mit der Facebook-Seite zum ersten Mal interagieren, so dass, wenn Sie zuvor die Seite angeschrieben haben, werden Sie nicht in der Lage sein, „Erste Schritte“, um zu sehen, wenn Sie den Faden von Ihrem Facebook-Messenger-Client löschen ( entweder mobil oder Desktop).

Aus den FB Messenger Text & Tabellen:

Es gibt bestimmte Voraussetzungen, um den Begrüßungsbildschirm zu sehen und die Schritte Taste Get:

  • Sie werden gemacht nur das erste Mal, wenn der Benutzer mit der Seite interagiert auf Messenger
  • Nur Administratoren / Entwickler / Tester der App kann es sehen, wenn die App im Entwicklungsmodus ist
  • Ihre App muss auf Postbacks auf Ihrem Webhook abonniert werden
Beantwortet am 16/04/2017 um 17:33
quelle vom benutzer

stimmen
2

Es gibt eine Bibliothek in npm, die die Funktionalität des POST Wraps / DELETE Aktionen hier: 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
Beantwortet am 23/04/2017 um 06:24
quelle vom benutzer

stimmen
3

Das aktuelle Format ist, https://graph.facebook.com/v2.6/me/messenger_profile?access_token=PAGE_ACCESS_TOKEN

{ "Get_started": { "Nutzlast": "GET_STARTED_PAYLOAD"}}

Beantwortet am 07/09/2017 um 12:23
quelle vom benutzer

stimmen
0

In unserem Fall folgende gearbeitet:

  • Hit der thread_settingsAPI

    https://graph.facebook.com/v2.6/me/thread_settings?access_token=<YOU FACEBOOK PAGE'S PAGE ACCESS TOKEN>

  • Bestehen die folgende Beispiel JSON

    {
      "Setting_type": "call_to_actions",
      "Thread_state": "new_thread",
      "Call_to_actions": [
        {
          "Nutzlast": "Start"
        }
      ]
    }
  • Die API hat folgende als Ergebnis geben:
    {
        „Ergebnis“: „Erfolgreich in new_thread der CTAs“
    }
Beantwortet am 03/12/2017 um 07:30
quelle vom benutzer

stimmen
1

Senden Sie eine Post-Anforderung mit Ihrer Seite Zugriffstoken

https://graph.facebook.com/v2.6/me/messenger_profile?access_token=YOUR-TOKEN

mit folgenden Daten

{ 
  "get_started":{
     "payload":"<GET_STARTED_PAYLOAD>"
   }
}

Facebok Docs: Get Taste gestartet

Hoffen, dass diese neue Methode, um Ihr Problem zu lösen. Vergessen Sie nicht gesendeten Nachrichten zuerst mit Facebook Web sehen Schaltfläche in Aktion zu löschen.

Beantwortet am 12/01/2018 um 20:56
quelle vom benutzer

stimmen
0

Sehr einfache Lösung, öffnen Sie einfach im Terminal und gehen Sie zu Ihrem Host - Ordner (in Mine /var/www/html/booking/public/facebookbot) und fügen Sie den folgenden Code:

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"

und drücken Sie die Eingabetaste, stellen Sie sicher, dass Ihre korrekte Zugriffstoken setzen, auch Sie können erkennen, wenn Ihr die ersten Schritte Taste von Nutzlast gedrückt, die GET_STARTED_PAYLOAD in obigen Codebeispiel ist.

Beantwortet am 01/02/2019 um 17:41
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more