javascript - Microsoft Graph 获取基本联系方式 (Node.js)

标签 javascript node.js microsoft-graph-api

我想通过 Microsoft Graph 查看我的 Microsoft 帐户中的联系人。 来自 https://github.com/microsoftgraph/nodejs-connect-rest-sample 的代码 我在 utils/graphHelper.js 中添加了 getUserContact 函数

function getUserContact(accessToken, callback) {
  request
   .get('https://graph.microsoft.com/v1.0/me/contacts')
   .set('Authorization', 'Bearer ' + accessToken)
   .end((err, res) => {
     callback(err, res);
   });
}

并将其添加到 graphHelper.js 文件的底部

exports.getUserContact = getUserContact;

在文件夹路由中 -> index.js 修改自

router.get('/token',
  passport.authenticate('azuread-openidconnect', { failureRedirect: '/' }),
    (req, res) => {
      graphHelper.getUserData(req.user.accessToken, (err, user) => {
        if (!err) {
          req.user.profile.displayName = user.body.displayName;
          req.user.profile.emails = [{ address: user.body.mail || user.body.userPrincipalName }];
          renderSendMail(req, res);
        } else {
          renderError(err, res);
        }
      });
    });

router.get('/token',
  passport.authenticate('azuread-openidconnect', { failureRedirect: '/' }),
    (req, res) => {
      graphHelper.getUserContact(req.user.accessToken, (err, user) => {
        if (!err) {
          req.user.profile.displayName = user.body;
          //req.user.profile.emails = [{ address: user.body.mail || user.body.userPrincipalName }];
          renderSendMail(req, res);
        } else {
          renderError(err, res);
        }
      });
    });

(修改在index.js文件第45-48行添加getUserContact)

然后在项目目录下npm start

登录过程后结果为enter image description here

有什么解决办法吗?

谢谢

更新:11:22 15/6/2017 在 config.js 文件中更新(添加 contact.read)

scope: ['User.Read', 'Mail.Send', 'Files.ReadWrite','Contacts.Read']

但在认证页面之后再次失败enter image description here

enter image description here

最佳答案

您没有访问联系人所需的范围。您需要将 Contacts.Read 添加到 config.js 中的 scope 值。

关于javascript - Microsoft Graph 获取基本联系方式 (Node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44539792/

相关文章:

javascript - 获取嵌套对象的总大小

javascript - 异步库中 `root=...` 代码的用途是什么?

javascript - 对于 Web UI 专家

javascript - 如何修复此错误 : Error: Can't wait without a fiber?

azure - 为什么我的 Azure Active Directory 身份验证 token 不包含 MS Graph 的权限?

azure - 访问 token 验证失败。无效受众,office 365 Graph API

javascript - addEventListener (经典 dom svg-elment) 和 .on (at d3js) 之间的区别在哪里

node.js - 自定义验证错误空错误唯一错误

javascript - 如何获取所有可用 Node.js 模块的列表?

curl - 通过 cURL 从 Microsoft Graph API 获取 Access_Token