Javascript conversationId-值可以';不能为空

Javascript conversationId-值可以';不能为空,javascript,microsoft-graph-api,office-js,office-addins,Javascript,Microsoft Graph Api,Office Js,Office Addins,总之,addin我正试图在ADAL和microsoft.graph的帮助下从AAD获取数据。代码如下: 来自app.js var app = (function () { "use strict"; window.config = { instance: 'https://login.microsoftonline.com/', tenant: '<TENANT>', clientId: '<CLIENTID>', redirectUri: '<THE-APP-A

总之,addin我正试图在ADAL和microsoft.graph的帮助下从AAD获取数据。代码如下:

来自app.js

var app = (function () {
"use strict";

window.config = {
instance: 'https://login.microsoftonline.com/',
tenant: '<TENANT>',
clientId: '<CLIENTID>',
redirectUri: '<THE-APP-ADDRESS>',
postLogoutRedirectUri: window.location.origin,
endpoints: {
     officeGraph: 'https://graph.microsoft.com',
},
callback: userSignedIn,
popUp: true,
cacheLocation: 'localStorage'

};

function signIn() {
   authContext.login();
}

function userSignedIn(err, token) {
  console.log('userSignedIn called');
//   showWelcomeMessage();
  if (!err) {
      console.log("token: " + token);
      showWelcomeMessage();
  }
  else {
      console.error("error: " + err);
  }
 }

 function showWelcomeMessage() {
  var authContext = new AuthenticationContext(config);

    var $userDisplay = $(".app-user");
    var $signInButton = $(".app-login");
    var $signOutButton = $(".app-logout");

    // Check For & Handle Redirect From AAD After Login
    var isCallback = authContext.isCallback(window.location.hash);
    authContext.handleWindowCallback();

    if (isCallback && !authContext.getLoginError()) {
        window.location = authContext._getItem(authContext.CONSTANTS.STORAGE.LOGIN_REQUEST);
    }
var-app=(函数(){
“严格使用”;
window.config={
实例:'https://login.microsoftonline.com/',
租户:'',
客户端ID:“”,
重定向URI:“”,
postLogoutRedirectUri:window.location.origin,
端点:{
办公室图表:'https://graph.microsoft.com',
},
回调:userSignedIn,
是的,
cacheLocation:“本地存储”
};
函数签名(){
authContext.login();
}
函数userSignedIn(错误,令牌){
log('userSignedIn called');
//showWelcomeMessage();
如果(!err){
console.log(“令牌:+token”);
showWelcomeMessage();
}
否则{
控制台错误(“错误:+err”);
}
}
函数showWelcomeMessage(){
var authContext=新的AuthenticationContext(配置);
var$userDisplay=$(“.app user”);
变量$signInButton=$(“.app login”);
var$signburgatton=$(“.app logout”);
//登录后检查并处理来自AAD的重定向(&D)
var isCallback=authContext.isCallback(window.location.hash);
authContext.HandleIndowCallback();
if(isCallback&!authContext.getLoginError()){
window.location=authContext.\u getItem(authContext.CONSTANTS.STORAGE.LOGIN\u请求);
}
和main.js

 function getDataFromSelection() {
    var baseEndpoint = 'https://graph.microsoft.com';
    var authContext = new AuthenticationContext(config);

    Office.context.document.getSelectedDataAsync(Office.CoercionType.Text,
        function (asyncResult) {
            if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {

                authContext.acquireToken(baseEndpoint, function (error, token) {
                    if (error || !token) {
                        app.showNotification("Ingen token: ", "Du får logga in igen." + error); // + error
                    }
                    //var email = authContext._user.userName;
                    var url = "https://graph.microsoft.com/v1.0/" + config.tenant + "/me";

                    var html = "<ul>";
                    $.ajax({
                        beforeSend: function (request) {
                            request.setRequestHeader("Accept", "application/json");
                        },
                        type: "GET",
                        url: url,
                        dataType: "json",
                        headers: {
                            'Authorization': 'Bearer ' + token,
                        }
                    }).done(function (response) {

                        html += getPropertyHtml("Namn", response.displayName);
                        html += getPropertyHtml("Titel", response.jobTitle);
                        html += getPropertyHtml("Avdelning", response.officeLocation);
                        html += getPropertyHtml("Telefon jobb", response.businessPhones);
                        $("#results").html(html);
                        return postDataToContentControlers(response);


                    }).fail(function (response) {
                       // app.showNotification('Inloggningen slutade att fungera!', 'Du får logga ut och prova att logga in igen'); //response.responseText
                    }).always(function () {
                        console.log("AJAX is done!!")
                    })


                });
            } else {
                app.showNotification('Error:', 'Något gick fel. Du får logga in igen.'); //result.error.message
            }
        }
    );
}
函数getDataFromSelection(){ var baseEndpointhttps://graph.microsoft.com'; var authContext=新的AuthenticationContext(配置); Office.context.document.getSelectedDataAsync(Office.胁迫类型.Text, 函数(异步结果){ if(asyncResult.status==Office.AsyncResultStatus.successed){ acquireToken(baseEndpoint,函数(错误,标记){ 如果(错误| |!标记){ app.showNotification(“Ingen令牌:,“igen中的Du får logga.”错误);//+错误 } //var email=authContext.\u user.userName; 变量url=”https://graph.microsoft.com/v1.0/“+config.tenant+”/me”; var html=“
    ”; $.ajax({ 发送前:功能(请求){ setRequestHeader(“接受”、“应用程序/json”); }, 键入:“获取”, url:url, 数据类型:“json”, 标题:{ “授权”:“持票人”+代币, } }).完成(功能(响应){ html+=getPropertyHtml(“Namn”,response.displayName); html+=getPropertyHtml(“Titel”,response.jobTitle); html+=getPropertyHtml(“Avdelning”,response.officeLocation); html+=getPropertyHtml(“Telefon-jobb”,response.businessPhones); $(“#结果”).html(html); 返回PostDatatoContentControllers(响应); }).失败(功能(响应){ //app.showNotification('Inloggningen slutade att fungera!','Du får logga ut och prova att logga in igen');//response.responseText }).always(函数(){ log(“AJAX完成了!!”) }) }); }否则{ app.showNotification('Error:','Något gick fel.Du får logga in igen.');//result.Error.message } } ); } 在本地wordklient上,它可以工作,但在Word online上(Office 365 Pro Plus v.1609) 我是在运行函数getDataFromSelection()时得到的

    在我登录并得到确认和令牌之前:

    当您使用microsoft graph获取邮件消息时,会处理参数ConversationId。每封邮件都有一个ConversationId…为什么它会抱怨关于GET-Again的问题

    有人知道如何绕过这个问题,或者给我指出正确的方向吗?谢谢=)


    编辑:我忘了提到这在Google Chrome上可以在线使用,但在Microsoft Edge上,在获取任何数据之前,弹出窗口在登录方面根本不起作用。只需再次弹出外接程序。

    如果您希望将图形合并到外接程序中,我建议您查看。它目前正在预览中,但长期来看,这绝对是你想结束吗。谢谢Marc=)我一直在检查它,它看起来很棒=)。你知道它需要多长时间才能过去预览吗?没有任何答案和建议,我现在正在试用office js helpers,配置似乎更简单。我遇到了一些问题。我将为此写一个新问题。如果你如果您希望将图表合并到外接程序中,我建议您查看。它目前正在预览中,但长期来看,这绝对是您想要结束的地方。谢谢Marc=)我一直在检查它,它看起来很棒=)。您知道它需要多长时间才能完成过去的预览?嗯,没有任何答案和建议,我现在正在尝试office js助手和艰难的配置似乎更简单,我遇到了一些问题。我将为此写一个新问题。