Dialogflow - Fulfillment - 添加参加者列表

问题描述 投票:1回答:1

我正在尝试制作一个可以预约的小聊天机器人。我没有找到允许我动态添加意向的代码。

我的代理人有一系列电子邮件:

agent.parameters.invites [0] =>电子邮件1 agent.parameters.invites [1] =>电子邮件2 ...

这是我的功能:

    function createCalendarEvent (dateTimeStart, dateTimeEnd, room, calendarId, agent, organisateur,objet) {  return new Promise((resolve, reject) => {
    calendar.events.list({  // List all events in the specified time period
      auth: serviceAccountAuth,
      calendarId: calendarId,
      timeMin: dateTimeStart.toISOString(),
      timeMax: dateTimeEnd.toISOString()
    }, (err, calendarResponse) => {
      // Check if there exists any event on the calendar given the specified the time period
      if (err || calendarResponse.data.items.length > 0) {
          if (err) {agent.add(err.toString());}
        reject(err || new Error('Heure demandée en conflit avec un autre RDV.'));
      } else {

        calendar.events.insert({ auth: serviceAccountAuth,
          calendarId: calendarId,
          resource: {summary: objet + ' - salle : '+ room + ' - organisé par  ' + agent.parameters.orga,
            start: {dateTime: dateTimeStart},
            end: {dateTime: dateTimeEnd},
            description: objet,
            location: room,
            //source : {title : "JPV objet"}
            //organizer : {'email': organisateur},
            attendees: [{'email': agent.parameters.invites[0],"organizer": true}, {'email':agent.parameters.invites[1]}],
            sendUpdates :'all', 
            sendNotifications: true,
          }
        }, (err, event) => {
          err ? reject(err) : resolve(event);
        }
        );

      }
    });
  });
}

你能帮助我吗 ?

问候,

google-api dialogflow fulfillment
1个回答
0
投票

根据你展示的内容,agent.parameters.invites是一个数组,你需要一个你作为attendees参数的一部分传递的数组。

在JavaScript中,一个很好的方法是使用Array.map()函数,它在数组中的每个值上调用一个函数,并返回一个新数组,其结果是调用每个函数。使用源数组中的该元素的值和(可选)索引调用该函数。

我没有测试过这个,但是这样的东西应该可行

let attendees = agent.parameters.invites.map( (value, index) => {
  return {
    email: value,
    organizer: (index === 0)
  }
});

然后使用此attendees数组作为调用中attendees参数的值。

在这种情况下,函数接受每个值和索引,并返回一个新对象,其值为email参数设置,如果这是第一个项,则organizer设置为true(否则为false)。

© www.soinside.com 2019 - 2024. All rights reserved.