node-outlook不允许我向其他电子邮件授予权限

时间:2018-01-24 22:58:01

标签: javascript azure email outlook-restapi

所以我构建了一个简单的应用程序,并尝试将Outlook的API集成到其中。我创建了一个Outlook帐户,注册了一个应用程序并用密钥设置了所有内容。当我转到Azure登录页面时,我使用我注册该应用程序的帐户登录,并且我能够返回该帐户日历的JSON数据。

然而,当我尝试另一个Outlook帐户时,我遇到了一个问题:

getUserEmail returned an error: [object Object]

这是以下功能:

// Function to retrieve email in order to find user
async function getUserEmail(token) {
  // Create a Graph client
  const client = microsoftGraph.Client.init({
    authProvider: done => {
      // First parameter is is error handling if no token is retrieved
      // If token is available then return the token
      done(null, token);
    }
  });

  const res = await client.api('/me').get();

  // Outlook.com users have userPrincipalName instead of a mail attribute
  return res.mail ? res.mail : res.userPrincipalName;
}

安慰错误本身会返回以下消息:

all the offeractions provided in the property bag cannot be validated for the token

我现在真的很困惑,为什么我只能使用我注册该应用的帐户访问数据?我是否必须在应用注册中更改其他内容?

1 个答案:

答案 0 :(得分:0)

您自己的组织中的其他用户是?如果没有,xyz域名公司的IT管理员(email@xyz.onmicrosoft.com)必须代表整个公司给予同意,以便该公司的用户能够使用您的应用程序。这是一个非常好的流程示例:

https://blog.mastykarz.nl/implementing-admin-consent-multitenant-office-365-applications-implicit-oauth-flow/