简体   繁体   中英

Facebook messenger bot Get Started Button

I'm building my first messenger bot in js and already can receive and reply to messages and send cards with options, but I've already tried everything to setup a get started button but with no success... Here is what I have done for that:

I don't know what i'm doing wrong or where do i have to call the facebookthreadAPI function. Need advice.

Excerpt from index.js:

function facebookThreadAPI(jsonFile, cmd){
// Start the request
request({
    url: 'https://graph.facebook.com/v2.6/me/thread_settings?access_token='+process.env.token,
    method: 'POST',
    headers: {'Content-Type': 'application/json'},
    form: require(jsonFile)
},
function (error, response, body) {
    if (!error && response.statusCode == 200) {
        // Print out the response body
        console.log(cmd+": Updated.");
        console.log(body);
    } else { 
        // TODO: Handle errors
        console.log(cmd+": Failed. Need to handle errors.");
        console.log(body);
    }
});}

Excerpt from fb-get-started-button.json:

{
   "setting_type":"call_to_actions",
   "thread_state":"new_thread",
   "call_to_actions":[
      {
        "payload":"action?POSTBACKHERE"
      }
   ]
}

Facebook now offers a new API for setting up the Get started button with many other features such as the greeting text and persistent menu so instead of using the old thread_setting API use the messenger profile API. For example, using curl

    curl -X POST -H "Content-Type: application/json" -d '{ 
      "get_started":{
         "payload":"GET_STARTED_PAYLOAD"
    }
   }' "https://graph.facebook.com/v2.6/me/messenger_profile?access_token=PAGE_ACCESS_TOKEN"    

Replace PAGE_ACCESS_TOKEN with your page access token and GET_STARTED_PAYLOAD with any payload you want. See the completetutorial here

I have the same problem. Here you can find the documentation.

I have tried to execute the example with no results.

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 "

My error is:

Requires pages_messaging permission to manage the object

But my page is not public.

Edit: You can find the solution Here . It doesn't work with the page admin

Now, with that new API, I'm trying to set GetStarted button with that request: curl -X POST -H "Content-Type: application/json" -d '{ "get_started":{ "payload":"start"} }' "https://graph.facebook.com/v2.6/me/messenger_profile?access_token=My_Token" and getting {"result":"success"} . But that button still doesn't appear in chat. So, I still dont understand, what's the problem here...

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM