I developed a outlook add-in which using OfficeJS API and want to implement OAuth within app, also
API Documnetation says Outlook 2016(Desktop) supports requirements set 1.1, 1.2, 1.3 & 1.4 but in my case it remains silent not even throws an error.
While running working dialog api sample for word add-in i am getting
JavaScript run-time error: Unable to get property 'displayDialogAsync' of undefined or null reference
.
I am using Microsoft Office Professional Plus 2016.
Code I wrote to launch a dialog is below:
dialogTest() {
const url = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize?response_type=....";
Office.context.ui.displayDialogAsync(url, { width: 15, height: 27, requireHTTPS: true }, function (asyncResult) {
if (asyncResult.status !== Office.AsyncResultStatus.Succeeded) {
// TODO: Handle error.
return;
}
// Get the dialog and register event handlers.
var dialog = asyncResult.value;
dialog.addEventHandler(Microsoft.Office.WebExtension.EventType.DialogMessageReceived, function (asyncResult) {
if (asyncResult.type !== Microsoft.Office.WebExtension.EventType.DialogMessageReceived) {
// TODO: Handle unknown message.
return;
}
// Parse the message.
var data = JSON.parse(asyncResult.message);
console.log('Hello #Office365Dev', data.name);
// TODO: Do something with the data.
// We got our data, time to close the dialog.
dialog.close();
});
});
}
Looks like
ui
member ofOffice.context
is not defined orOffice.js
is not loaded correctly. Try to review these first:Office.js
javascript loaded correctly?Edit: discussing with Microsoft engineer on June 2016 (this is no official statement). The supported builds for
dialogAPI
is Office for Windows Desktop 2016 (build 16.0.6741.0000 or above). This may change.var result = Office.context.requirements.isSetSupported('DialogAPI', '1.4');