Dialogflow Facebook唯一消息ID

时间:2018-09-30 00:58:52

标签: javascript facebook firebase dialogflow facebook-chatbot

我正在尝试为我的机器人上传递的每条消息设置唯一的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);

0 个答案:

没有答案