Facebook messenger bot入门按钮

时间:2017-01-23 01:52:15

标签: javascript facebook bots

我在js中构建我的第一个messenger机器人并且已经可以接收和回复消息并发送带有选项的卡片,但是我已经尝试了所有设置入门按钮的但是没有成功。这就是我为此所做的:

我不知道我做错了什么,或者我必须在哪里调用facebookthreadAPI函数。需要建议。

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

摘自fb-get-started-button.json:

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

3 个答案:

答案 0 :(得分:1)

Facebook现在提供了一个新的API,用于设置具有许多其他功能的“入门”按钮,例如问候语文本和持久性菜单,因此不使用旧的thread_setting api,而是使用信使配置文件api。例如使用curl

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

将PAGE_ACCESS_TOKEN替换为您的页面访问令牌,将GET_STARTED_PAYLOAD替换为您想要的任何有效负载。 查看完整的tutorial here

答案 1 :(得分:0)

我有同样的问题。 Here您可以找到文档。

我试图执行没有结果的示例。

  

curl -X POST -H“Content-Type:application / json”-d'{     “setting_type”: “call_to_actions”     “thread_state”: “new_thread”     “call_to_actions”:       {         “有效载荷”: “USER_DEFINED_PAYLOAD”       }     ]   }'“https://graph.facebook.com/v2.6/me/thread_settings?access_token=PAGE_ACCESS_TOKEN

我的错误是:

  

需要pages_messaging权限来管理对象

但我的页面不公开。

修改:您可以找到解决方案Here。它不适用于页面管理员

答案 2 :(得分:0)

现在,使用该新API,我正在尝试使用该请求设置GetStarted按钮: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"  获得{"result":"success"}。但该按钮仍未显示在聊天中。所以,我仍然不明白,这里的问题是什么......