无法从oauth2 office365日历API获取令牌

我无法从office365日历API获得令牌,从最近7到8个月,它正在工作,但突然间我得到错误“期待一个数组或一个可迭代的对象,但得到[对象为空]”。

你们可以在这里看到我的代码

var oauth2 = require("simple-oauth2")(ConfigOutlookCredentials); var scopes = ["openid","offline_access","profile", //here 'profile' is added bz not able to getting EmailId in this function getEmailFromIdToken. "https://outlook.office.com/mail.read", "https://outlook.office.com/calendars.readwrite" ]; function getTokenFromCode(auth_code,callback) { logger.MessageQueueLog.log("info","auth_code: "+auth_code+" || redirectUri: "+redirectUri+" || scopes: "+scopes); oauth2.authCode.getToken({ code: auth_code, redirect_uri: redirectUri, scope: scopes.join(" ") }, function(error, result) { logger.MessageQueueLog.log("info","error: "+util.format('%j',error.message)+" || result: "+util.format('%j',result)); if (error) { return callback(error,null); } else { var token = oauth2.accessToken.create(result); return callback(null,token); } }); } 

我得到的代码redirect到我的rediredct Url和相同的代码传递给上面的函数“getTokenFromCode”,仍然得到错误,即“ 期待一个数组或一个可迭代的对象,但得到[对象空] ”。

请帮我弄清楚这个问题。 提前致谢。

我有同样的错误。 您使用的是https://github.com/jonathansamines/simple-oauth2中的 simple-oauth2-promise

我的解决scheme是用这样的代码移动到https://github.com/lelylan/simple-oauth2

 var oauth2 = require('simple-oauth2').create({ client: { id: service_data.clientID, secret: service_data.clientSecret }, auth: { tokenHost: service_data.site, tokenPath: service_data.tokenPath } } ); var tokenConfig = { code: data.code, redirect_uri: data.redirect_uri }; return oauth2.authorizationCode.getToken(tokenConfig); 

这返回一个承诺。 希望能帮助到你!

Interesting Posts