我正在尝试为我的机器人上传递的每条消息设置唯一的ID,并在对白时附加dialogflow。 我正在看编码的简单解释
开始消息。 Bot使用身份验证代码接收发件人的唯一ID 将ID保存到Firebase -继续正常聊天。
该ID被用于用户在此处声明名称时使用的另一个代码 它将名称保存到唯一的Facebook ID。 我的名字是什么?它可以根据Firebase中的用户ID记住它
---- ID:939439231 -------姓名:约翰·多伊(John Doe)
我现在遇到的问题只是从Facebook获取ID。
function start(agent) {
const fetch = require('node-fetch');
const sendTextMessage = (userId, text) => {
return fetch(
`https://graph.facebook.com/v3.1/me/messages?access_token={fbaccesstoken}`,
{
headers: {
'Content-Type': 'application/json',
},
method: 'POST',
body: JSON.stringify({
messaging_type: 'RESPONSE',
recipient: {
id: userId,
},
}),
}
);
}
let userId = agent.getUser().sender.id;
firebaseAdmin.database().collection('users').where('userId', '==', userId).limit(1).get()
.then(snapshot => {
let user = snapshot.docs[0];
if (!user) {
// If user is not in DB, its their first time, Welcome them!
agent.add('Welcome to my app for the first time!');
// Add the user to DB
firebaseAdmin.firestore().collection('users').add({
userId: userId
}).then(ref => {
console.log('Added document with ID: ', ref.id);
});
} else {
// User in DB
agent.add('Welcome back!');
}
});
// Map function hanlder to Dialogflow's welcome intent action 'input.welcome'
let actionMap = new Map();
actionMap.set('Welcome' , start);
agent.handleRequest(actionMap);