2017-07-28 3 views
5

ich bekommen bin von Office365 Kalender API zu bekommen nicht in der Lage Token, aus der letzten 7 bis 8 Monate war es funktioniert, aber ich erhalte die Störung plötzlich „ein Array oder ein iterable Objekt erwartet aber bekam [Objekt Null] ".Unable Token von oauth2 Office365 Kalender API

Ihr könnt meinen Code hier

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); 
    } 
    }); 
} 

Ich erhalte Code nach Umleitung auf meine rediredct URL und denselben Code geben oben Funktion „getTokenFromCode“ sehen, noch bin ich den Fehler beim Abruf dh "eine erwartete Array oder ein iterierbares Objekt, aber [Objekt Null] ".

Bitte helfen Sie mir, das Problem herauszufinden. Vielen Dank im Voraus.

Antwort

0

Ich hatte den gleichen Fehler. Sie verwenden einfach oauth2-Versprechen von https://github.com/jonathansamines/simple-oauth2

Lösung für mich zu https://github.com/lelylan/simple-oauth2 mit einem Code wie folgt bewegte:

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); 

dies gibt ein Versprechen. hoffe es hilft!

Verwandte Themen