我无法从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); } }); }
我在重定向到我的rediredct Url并且相同的代码传递到上面的函数“getTokenFromCode”后得到代码,我仍然得到错误,即“期望一个数组或一个可迭代对象,但得到[对象为空]”.
请帮我弄清楚问题.
提前致谢.
解决方法
我有同样的错误.您正在使用
https://github.com/jonathansamines/simple-oauth2的simple-oauth2-promise
我的解决方案是使用如下代码移至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);
这会返回一个承诺.希望能帮助到你!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。