Microsoft Graph获得基本联系人(Node.js)

时间:2017-06-14 08:45:07

标签: javascript node.js microsoft-graph

我希望通过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从项目目录

开始

登录后,结果为enter image description here

任何解决方案?

三江源

更新时间:2017年5月15日星期五 在config.js文件中更新(添加contact.read)

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

但在身份验证页面后,它再次失败enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

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