如何从 Office.context.ui.displayDialogAsync 中读取重定向的 url 参数
How to read redirected url parameters from Office.context.ui.displayDialogAsync
我不知道如何从 Outlook 网络插件中的重定向页面 url 读取 url parameters/token。我正在使用 DialogAPI 弹出我的天蓝色应用 sign-in/consent 页面,然后尝试从重定向页面读取令牌。
我可以看到令牌已通过,但我不知道如何从 url?
中读取令牌
function GetToken(url)
{
_dlg = Office.context.ui.displayDialogAsync(url, { height: 40, width: 40 }, function (result) {
_dlg = result.value;
_dlg.addEventHandler(Office.EventType.DialogMessageReceived, processMessage);
Office.context.ui.messageParent(somevalue);
});
}
此外,processMessage 回调永远不会被触发,想知道为什么吗?
伙计们,任何反馈都会有所帮助。
谢谢
Office.context.ui.displayDialogAsync 必须从主机页面调用,Office.context.ui.messageParent 必须从对话框调用。
这应该在主机页面上:
var dialog;
Office.context.ui.displayDialogAsync(url,
{height: 40, width: 40}, function (result) {
dialog = result.value;
dialog.addEventHandler(Office.EventType.DialogMessageReceived,
function(somevalue){
console.log(somevalue);});
});
这应该在对话框上:
Office.initialize = function (reason) {
$(document).ready(function () {
Office.context.ui.messageParent(somevalue);
}
}
在您的清单中,必须使用“https”访问所有域。
- URL使用HTTPS协议。这对于对话框中加载的所有页面都是强制性的,而不仅仅是加载的第一页。
- 对话框的域与宿主页面的域相同,可以是任务面板中的页面,也可以是插件命令的函数文件。这是必需的:传递给 displayDialogAsync 方法的页面、控制器方法或其他资源必须与主机页面位于同一域中。
请visit here了解更多信息。
由于我是 Web 开发的新手,所以这是一个 basic/easy 解决方案。我在 outlook web add-in 中创建了 html 页面作为我们在 Azure 应用程序中指定的重定向 URI,以将令牌发送到。然后使用 JavaScript,我可以解析包含访问令牌的 URL。
我不知道如何从 Outlook 网络插件中的重定向页面 url 读取 url parameters/token。我正在使用 DialogAPI 弹出我的天蓝色应用 sign-in/consent 页面,然后尝试从重定向页面读取令牌。
我可以看到令牌已通过,但我不知道如何从 url?
中读取令牌function GetToken(url)
{
_dlg = Office.context.ui.displayDialogAsync(url, { height: 40, width: 40 }, function (result) {
_dlg = result.value;
_dlg.addEventHandler(Office.EventType.DialogMessageReceived, processMessage);
Office.context.ui.messageParent(somevalue);
});
}
此外,processMessage 回调永远不会被触发,想知道为什么吗?
伙计们,任何反馈都会有所帮助。
谢谢
Office.context.ui.displayDialogAsync 必须从主机页面调用,Office.context.ui.messageParent 必须从对话框调用。
这应该在主机页面上:
var dialog;
Office.context.ui.displayDialogAsync(url,
{height: 40, width: 40}, function (result) {
dialog = result.value;
dialog.addEventHandler(Office.EventType.DialogMessageReceived,
function(somevalue){
console.log(somevalue);});
});
这应该在对话框上:
Office.initialize = function (reason) {
$(document).ready(function () {
Office.context.ui.messageParent(somevalue);
}
}
在您的清单中,必须使用“https”访问所有域。
- URL使用HTTPS协议。这对于对话框中加载的所有页面都是强制性的,而不仅仅是加载的第一页。
- 对话框的域与宿主页面的域相同,可以是任务面板中的页面,也可以是插件命令的函数文件。这是必需的:传递给 displayDialogAsync 方法的页面、控制器方法或其他资源必须与主机页面位于同一域中。
请visit here了解更多信息。
由于我是 Web 开发的新手,所以这是一个 basic/easy 解决方案。我在 outlook web add-in 中创建了 html 页面作为我们在 Azure 应用程序中指定的重定向 URI,以将令牌发送到。然后使用 JavaScript,我可以解析包含访问令牌的 URL。