gpt4 book ai didi

facebook - 如何在 facebook messenger 中显示个性化的 'Welcome Message'?

转载 作者:行者123 更新时间:2023-11-30 05:26:37 25 4
gpt4 key购买 nike

我想显示“欢迎消息”,例如“嗨罗伯特,欢迎来到我的应用程序”。所以我需要发送:

  1. "https://graph.facebook.com/v2.6/USER_ID?fields=first_name,last_name,profile_pic,locale,timezone,gender&access_token=PAGE_ACCESS_TOKEN "

  2. 使用第一个请求中的“first_name”,发送“https://graph.facebook.com/v2.6/PAGE_ID/thread_settings?access_token=PAGE_ACCESS_TOKEN”请求以设置“欢迎消息”。

但是,我需要在第一次请求之前知道 user_id。

我的问题:

  1. 创建“欢迎消息”的步骤是什么?
  2. 如何在用户打开 Facebook Messenger 窗口时显示“欢迎消息”?

我评论了https://developers.facebook.com/docs/messenger-platform文件,我还有疑问。

最佳答案

所以你可以用 "get started" 来做这个按钮。只有当用户第一次向机器人发送消息时,此按钮才会出现。

使用这个命令你可以设置按钮:

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"

如您所见,如果按钮被按下,您的 Webhook 会收到“回发”

这是你得到的回调:

{
"sender":{
"id":"USER_ID"
},
"recipient":{
"id":"PAGE_ID"
},
"timestamp":1458692752478,
"postback":{
"payload":"USER_DEFINED_PAYLOAD"
}
}

所以这是从哪里可以得到用户id

现在您可以为此编写一个函数。我的样子是这样的:

function receivedPostback(event) {
var senderID = event.sender.id;
var recipientID = event.recipient.id;
var timeOfPostback = event.timestamp;

// The 'payload' param is a developer-defined field which is set in a postback
// button for Structured Messages.
var payload = event.postback.payload;

console.log("Received postback for user %d and page %d with payload '%s' " +
"at %d", senderID, recipientID, payload, timeOfPostback);


if (payload) {

// When a postback is called, we'll send a message back to the sender to
// let them know it was successful
switch (payload) {
case 'USER_DEFINED_PAYLOAD':
startedConv(senderID);
break;

default:
sendTextMessage(senderID, "Postback called");
}

我的 startedConv() 看起来像这样

function startedConv(recipientId){
var name;

request({
url: 'https://graph.facebook.com/v2.6/'+ recipientId +'?fields=first_name',
qs: {access_token: PAGE_ACCESS_TOKEN},
method: 'GET'
}, function(error, response, body) {
if (error) {
console.log('Error sending message: ', error);
} else if (response.body.error) {
console.log('Error: ', response.body.error);
}else{
name = JSON.parse(body);
sendTextMessage(recipientId, "Hello "+ name.first_name+", how can i help you ? ")
}
});
}

关于facebook - 如何在 facebook messenger 中显示个性化的 'Welcome Message'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37960857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com