hogyan lehet beállítani a „Kezdés” gombra facebook messenger bot és mikor kell küldeni üdvözlő üzenetet

szavazat
8

Fogj neki

próbált kérés küldése e url

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

De nem működött.

A kérdést 27/06/2016 07:32
a forrás felhasználó
Más nyelveken...                            


10 válasz

szavazat
2

meg kell futtatni egy megfelelő curl parancsot beállítani. ellenőrizze ezt a linket, és nézd meg a példájukat. https://developers.facebook.com/docs/messenger-platform/implementation#send_api

Válaszolt 28/06/2016 14:27
a forrás felhasználó

szavazat
3

köszönhetően az értékes észrevételeit, miután néhány megoldás találtam ezt a megoldást dolgozó, mint egy facebook iránymutatások

kell küldeni egy független POST kérést ennek az URL csak egyszer

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

használt postás küldeni ilyen kérést ide

Ha az Első lépések gomb sikeresen beállította, akkor kap a következő válasz

{
  "result": "Successfully added new_thread's CTAs"
}
Válaszolt 30/06/2016 07:26
a forrás felhasználó

szavazat
13

Készíts egy POST hívás API JSON szerv az alábbiak szerint.

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 kezdéshez gombra

Postman screentshot

Válaszolt 01/07/2016 20:22
a forrás felhasználó

szavazat
0

Jobb megoldás véleményem az, hogy a Microsoft Bot keretrendszer és használja ki / firstRun küldeni a messenger kezdéshez gombra

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

A platforms.firstRun alábbiak szerint néz ki

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

Ez viszont felhívja 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)
    ])
}

A platforms.facebook.sendThread alábbiak szerint néz ki // felhívja a Facebook Graph API-beállításokat módosítani 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 })
                }
            });
    })
}

Figyeljük meg a facebookTemplates.getStarted (), hogy valójában a JSON az induláshoz, ami úgy néz ki, az alábbiak szerint

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

Teljesen dugaszolható kód építészet elvégzésére első kísérletben művelet minden chatbot platformon. Tökéletesen működik az én bot ITT

Válaszolt 17/11/2016 16:24
a forrás felhasználó

szavazat
4

Lehetőség van meg azt sikeresen, de nem látta, mert már van egy meglévő beszélgetés a facebook oldalon.

Miután sikeresen beállította a „Get Started” menet, akkor csak azt, ha törli a meglévő beszélgetésláncba és újat kezdeni.

A kezdéshez nyomógomb csak akkor látható, ha be van kölcsönhatásban a facebook oldalon az első alkalommal, így ha korábban már értesítettük az oldalt, akkor nem fogja látni a „Get Started”, ha nem törli a szál a Facebook Messenger ( akár mobil vagy asztali).

A FB Messenger Docs:

Vannak bizonyos feltételek látva a üdvözlőképernyőt és az Első lépések gomb:

  • Ezeket csak a renderelt először a felhasználó használja az oldalt Messenger
  • Csak adminok / fejlesztők / tesztelők az alkalmazás láthatja, ha az alkalmazás a fejlesztési mód
  • Az app kell feliratkozott postbacks a webhook
Válaszolt 16/04/2017 17:33
a forrás felhasználó

szavazat
2

Van egy könyvtár NPM hogy becsomagolja a funkcionalitás a POST / törlési műveletek itt: 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
Válaszolt 23/04/2017 06:24
a forrás felhasználó

szavazat
3

A jelenlegi formátum, https://graph.facebook.com/v2.6/me/messenger_profile?access_token=PAGE_ACCESS_TOKEN

{ "Get_started": { "hasznos teher": "GET_STARTED_PAYLOAD"}}

Válaszolt 07/09/2017 12:23
a forrás felhasználó

szavazat
0

Esetünkben a következő dolgozott:

  • Hit a thread_settingsAPI

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

  • Telt az alábbi minta JSON

    {
      "Setting_type": "call_to_actions"
      "Thread_state": "new_thread"
      "Call_to_actions": [
        {
          "Rakomány": "Start"
        }
      ]
    }
  • Az API a következőket kell, mint az eredmény:
    {
        „Eredmény”: „Sikeresen hozzáadott new_thread a CTA-k”
    }
Válaszolt 03/12/2017 07:30
a forrás felhasználó

szavazat
1

Küldj egy bejegyzést kérelmet az oldal használatát hozzáférési token

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

A következő adatok

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

Facebok Docs: Kezdés gomb

Remélem, ez az új módszer megoldja a problémát. Ne felejtsd el törölni az elküldött üzeneteket először a Facebookon Web látni gomb akcióban.

Válaszolt 12/01/2018 20:56
a forrás felhasználó

szavazat
0

Nagyon egyszerű megoldás, csak nyitott terminál, és menjen a host mappa helyét, (az én /var/www/html/booking/public/facebookbot), és illessze be az alábbi kódot:

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"

és nyomjuk meg, győződjön meg róla, hogy tegye a helyes hozzáférési tokent is lehet felismerni, ha a kezdetekhez gombot megnyomták hasznos mely GET_STARTED_PAYLOAD a fenti kódot mintában.

Válaszolt 01/02/2019 17:41
a forrás felhasználó

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