Ошибка 12002 с использованием Office-js-helpers или Office.context.ui.displayDialogAsync - PullRequest
0 голосов
/ 21 мая 2019

Я использую Office-js-helpers и Office.context.ui.displayDialogAsync для аутентификации пользователей в нашей надстройке Outlook.Диалог открывается нормально, и я могу аутентифицироваться, используя наш URL-адрес IdentityServer4 (например, / connect / authenticate с redirectUrl window.location.origin).Однако, если у меня нет Index.html в папке надстройки, я получаю ошибку 12002 в обработчике DialogEventReceived, что означает, что диалоговое окно не может загрузить URL-адрес.Я не получаю эту ошибку, если добавляю Index.html в папку моей надстройки (например, window.location.origin будет https://localhost:44352/Index.html) - но ничего не происходит. Дескриптор DialogMessageReceived никогда не срабатывает. Я получаю это жеПоведение с использованием office-js Authenticator.authenticate и displayDialogAsync.

Пожалуйста, посмотрите ниже фрагменты, которые хорошо аутентифицируются в диалоге, но я не могу получить токен / код, потому что DialogMessageReceived никогда не запускается и не переходит в ошибку.

Использование Office-js-helpers

authenticator.endpoints.add("RM", {
                provider: 'RM',
                clientId: "MyClientId",
                baseUrl: "MyHttpsProtocol://MyDomain.DotCom/MyIdentityServer",
                authorizeUrl: "/connect/authorize",
                tokenUrl: "MyHttpsProtocol://MyDomain.DotCom/MyIdentityServer/connect/token",
                redirectUrl: window.location.origin,    
                responseType: "code",
                state: true,
                scope: "openid profile onelist offline_access"
            });

authenticator.authenticate('RM', true)
                        .then(function (token) {
                            showNotification("Token: " + prettify(token));
                        })
                        .catch(function (error) {
                            showNotification("No Token: " + prettify(error));
                        });

Использование Dialog Api

Office.context.ui.displayDialogAsync("MyHttpsProtocol://MyDomain.DotCom/MyIdentityServer/connect/authorize?response_type=code&client_id=MyClientID&redirect_uri=https%3A%2F%2Flocalhost%3A44352&scope=openid%20profile%20MyProfile%20offline_access&state=3364575774",
                        { height: 500, width: 500 }, 
                            function (asyncResult) {
                                dialog = asyncResult.value;
                                dialog.addEventHandler(Office.EventType.DialogMessageReceived, function (args) {
                                    showNotification(prettify(args.message));
                                    dialog.close();
                                });
                                dialog.addEventHandler(Office.EventType.DialogEventReceived, function (args) {
                                    showNotification(prettify(args.error));
                                    dialog.close();
                                });
                            }
                        );

Пожалуйста, помогите :) Что я пропускаю или делаю неправильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...