Я следовал учебнику по Node.js Календарю Outlook и получил все для отличной работы! Удивительная документация. Для моего конкретного приложения я хочу, чтобы пользователи могли бронировать встречи (т.е. создавать события в календаре Outlook). У пользователя, очевидно, не будет моей информации для входа в систему, поэтому для получения токена доступа я использую Тип разрешения владельца пароля Oauth2 вместо использования кода авторизации. Я делаю это, пытаясь позволить пользователю создавать события в моем календаре, не предоставляя им свои учетные данные Outlook. Вот как выглядит код:
async function getTokenFromCode() {
let result;
try {
result = await oauth2.ownerPassword.getToken({
username: "myEmail@outlook.com",
password: "myPassword",
//code: auth_code,
//redirect_uri: process.env.REDIRECT_URI,
scope: process.env.APP_SCOPES //Same as in tutorial with the addition of Calendar.ReadWrite
});
console.log("Owner password result: ", result);
//console.log(result);
const token = oauth2.accessToken.create(result);
console.log("Token created: ", token.token);
saveValuesToCookie(token, res);
return token.token.access_token; }
catch (error) {
console.log("Error on auto sign in: ");
console.log(error);
}
}
Но когда я делаю это, я получаю следующую ошибку:
Error on auto sign in: Error: Response Error: 400 Bad Request at internals.Client._shortcut (/home/pascal/node-outlook-tutorial/node-tutorial/node_modules/@hapi/wreck/lib/index.js:643:11) at processTicksAndRejections (internal/process/task_queues.js:94:5) at async Client.request (/home/pascal/node-outlook-tutorial/node-tutorial/node_modules/simple-oauth2/lib/client.js:35:20) at async Object.getTokenFromCode (/home/pascal/node-outlook-tutorial/node-tutorial/helpers/auth.js:58:14) at async /home/pascal/node-outlook-tutorial/node-tutorial/routes/authorize.js:16:13
.
Включено ли разрешение владельца пароля на конечной точке графа Microsoft? И если это не так, каковы были бы мои альтернативы в построении системы бронирования встреч с использованием календаря перспектив?