Как исправить ошибку «Неожиданный токен» с помощью асинхронной функции - PullRequest
0 голосов
/ 17 января 2019

Я занимаюсь разработкой бота для веб-приложений на 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 Ответ

0 голосов
/ 18 января 2019

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

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

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

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

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

Надежда на помощь!

...