Как исправить ошибку "Неожиданный токен" с помощью асинхронной функции
Я занимаюсь разработкой бота для веб-приложений на 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 для создания события
- Добавить информацию о создании повторяющихся событий... может оказаться полезным
Надеюсь на помощь!