Как исправить ошибку "Неожиданный токен" с помощью асинхронной функции

Я занимаюсь разработкой бота для веб-приложений на Azure (v3) и использую асинхронные методы, но не могу решить проблему, которая связана с SyntaxError: Неожиданная функция токена.

Я попытался обновить свой nodeJS с 6.9.4 до 8.9, но это не сработало. Я также запустил npm i -g azure-functions-core-tools@core, но все еще ничего.

class OAuthHelpers {
/**
 * Enable the user to schedule meeting and send an email attachment via the bot.
 * @param {TurnContext} turnContext 
 * @param {TokenResponse} tokenResponse 
 * @param {*} emailAddress The email address of the recipient
 */

async function createevent(turnContext, tokenResponse, emailAddress) {
    if (!turnContext) {
        throw new Error('OAuthHelpers.createevent(): `turnContext` cannot be undefined.');
    }
    if (!tokenResponse) {
        throw new Error('OAuthHelpers.createevent(): `tokenResponse` cannot be undefined.');
    }


    var client = new SimpleGraphClient(tokenResponse.token);

    // Calls the Graph API with the subject and content message...
    await client.createevent(
        emailAddress,
        `Lunch`,
        `I will be taking everyone to lunch as a reward for your hardwork.`
    );

    // Success message...
    await turnContext.sendActivity(`Success! I have scheduled a meeting with you and ${ emailAddress } have created an event on each of their calendars.`);
    } 

Я хочу, чтобы бот работал нормально, но не может, потому что Azure по какой-то причине не может обнаружить асинхронную функцию. Любая помощь приветствуется

1 ответ

Класс OAuthHelpers требует 'simple-graph-client', в котором находятся все методы, которые вы хотите использовать. В исходном примере, из которого взят ваш код, BotBuilder-Sample 24.bot-authentication-msgraph, если вы перейдете к файлу simple-graph-client.js, вы увидите вызываемые методы (то есть sendMail, getRecentMail, getMe и getManager) в файле OAuthHelpers.js.

Если вы этого еще не сделали, вам нужно будет включить метод для создания события. Это, в свою очередь, вызывается из файла OAuthHelpers.js как часть диалога с ботом.

Трудно понять, что к чему, без дополнительного кода, но я предполагаю, что токен передается в ваш метод createevent, но, поскольку метод (скорее всего) не существует как вызов API api, он не знает, что делать с этим.

Проверьте следующие ссылки для руководства:

  • Пример MS Graph, показывающий вызов GET для трех самых популярных событий календаря
  • Пример модульного теста MS Graph, но демонстрирует событие POST
  • Ссылка API для создания события
  • Добавить информацию о создании повторяющихся событий... может оказаться полезным

Надеюсь на помощь!

Другие вопросы по тегам