Как использовать Office.context.ui.displayDialogAsync для надстройки реагирования - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь использовать DialogAPI для своей надстройки реагировать на Outlook, чтобы получить токен доступа для вызовов API графа.Я сделал код, чтобы открыть диалоговое окно API и получить код, а затем получить токен доступа, используя этот код.Но когда я пытаюсь закрыть диалоговое окно, появляется сообщение «Office.context.ui.messageParent» undefined.

Office.context.ui.displayDialogAsync(
      "https://localhost:3000/assets/auth.html",
      { height: 30, width: 20 },
      function(asyncResult) {
        console.log("Dialog failed 1");
        dialog = asyncResult.value;
        dialog.addEventHandler(Office.EventType.DialogMessageReceived, function(
          _arg
        ) {
          console.log("Dialog failed 2");
          dialog.close();
        });
      }
    );
  • код внутри auth.html

    <script>
      Office.initialize = function() {
        showLogin();
        Office.context.ui.messageParent("jsonMessage");
      };
    
      function showLogin() {
        var ClientId = "a53cbaa8-7d4a-4739-8b1c-1f05ee2c545e";
        var RedirectUrl =
          "https://localhost:3000/wwwroot/redirect.html";
        var url =
          "https://login.microsoftonline.com/common/oauth2/v2.0/authorize?" +
          "client_id=" +
          ClientId +
          "&" +
          "response_mode=query&" +
          "response_type=code&" +
          "scope=openid offline_access https://graph.microsoft.com/Mail.ReadWrite&" +
          "redirect_uri=" +
          RedirectUrl +
          "&" +
          "prompt=consent";
        console.log("Get login url");
        window.location.replace(url);
      }
    </script>
    

...