MSDN文档说:
调用您应用的URL的Office应用程序将添加以下查询 字符串,然后传递URL:http://fooservice.com/index.htm?et= PAByAD4APAB0ACAAYQBpAGQAPQ ....( - >这个字符串会持续一段时间 - Mihaly KR)
?et
参数。该应用程序在Office中加载正常,但我想从令牌获取客户端ID,因此我可以在我的服务器上执行永久存储。 我做了一个php页面,打印所有get和post参数,并将其设置为APP源,所以我可以看到,发布了什么。
我的清单文件taskpaneapp.xml
<?xml version="1.0" encoding="utf-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="TaskPaneApp">
<Id>08afd7fe-1631-42f4-84f1-5bc51e242f98</Id>
<Version>1.0</Version>
<ProviderName>Microsoft</ProviderName>
<DefaultLocale>EN-US</DefaultLocale>
<DisplayName DefaultValue="Get token"/>
<Description DefaultValue="Test app for getting token"/>
<IconUrl DefaultValue=
"http://officeimg.vo.msecnd.net/_layouts/images/general/office_logo.jpg"/>
<Capabilities>
<Capability Name="Document"/>
<Capability Name="Workbook"/>
</Capabilities>
<DefaultSettings>
<SourceLocation DefaultValue="http://taskpaneapp.misc.dev.nomo.hu/print_r.php"/>
</DefaultSettings>
<Permissions>ReadWriteDocument</Permissions>
</OfficeApp>
我的令牌文件taskpaneapp.tok
<r>
<t
aid="WA900006056"
pid="{08afd7fe-1631-42f4-84f1-5bc51e242f98}"
cid="32F3E7FC559F4F49"
did="{0672BAE9-B41B-48FE-87F1-7F4D3DD3F3B1}"
ts="30"
et="Trial"
ad="2012-01-12T21:58:13Z"
ed="2012-06-30T21:58:13Z"
sd="2012-01-12T00:00:00Z"
te="2012-06-30T02:49:34Z" />
<d>VNNAnf36IrkyUVZlihQJNdUUZl/YFEfJOeldWBtd3IM=</d>
</r>
MSDN文档在令牌文件架构上不一致,有些在pid中使用{}
,而有些则没有。我试过了两个,没有一个工作过。
我的注册表项是:
key: taskpaneapp
value: \\NOMONAS\....\taskpaneapp.xml
我试过
key: entry1
value: \\NOMONAS\.....\taskpaneapp.xml
也是,它不起作用。
MSDN文档是否已过时?不这么认为,它们在2014年的Febr中更新,据说与Office Apps JS API 1.0和1.1兼容
如果您有任何建议或遇到同样的问题,请帮助我。任何建议都将不胜感激。
更新1:所以我发现Office已成功读取令牌文件。
将许可证状态设置为“试用”时,任务窗格应用程序启动时会在左上角显示通知。 MSDN文档非常令人困惑,here it says,该令牌文件pid参数必须放在括号here it is used without brackets中。经过大量的反复试验后,只有当pid 在括号中时才会读取令牌文件。
最重要的是,我将.tok文件更改为包含pid="{08afd7fe-1631-42f4-84f1-5bc51e242f98}"
。我想我会将Token Schema页面设为true,所以我更改了cid和aid属性以包含{}
- s。
但我仍然没有得到?et
参数。
答案 0 :(得分:2)
原来这是一个Office bug(duh)。 在这个forum post中,微软官员说:
在我的研究之后,似乎这是Office 15的“已知问题” SP1,因为从注册表加载的应用程序没有得到et 按预期返回。
解决方法:
将?et
获取参数放入xml,并忘记MSDN文档告诉您的.tok文件和编辑注册表的所有内容。
<SourceLocation DefaultValue= “http://myofficeapp.com?et=<base64 encoded token>”
为方便起见,这是MSDN文档中的示例令牌字符串
http://myApp/index.htm?et=PAByAD4APAB0ACAAYQBpAGQAPQAiAFcAQQAxADAAMgA4ADkAOQA1ADYANgAiACAAcABpAGQAPQAiADMAZAAyADgANwAwADcAYQAtAGYAYwBjAGUALQA0ADUAMQA3AC0AYQBjADYAZQAtAGMAYQAwAGEAZABkADYAMwA3ADMAYQBhACIAIABjAGkAZAA9ACIAMgAzAEEANwBFAEIAOABBADQAQwA0ADcARgA1AEEAMgAiACAAdABzAD0AIgAwACIAIABzAGwAPQAiAHQAcgB1AGUAIgAgAGUAdAA9ACIARgByAGUAZQAiACAAYQBkAD0AIgAyADAAMQAyAC0AMAA1AC0AMgAyAFQAMQA4ADoAMQAyADoAMgAzAFoAIgAgAHMAZAA9ACIAMgAwADEAMgAtADAANQAtADIAMgAiACAAdABlAD0AIgAyADAANgA3AC0AMAAyAC0AMgAzAFQAMQA4ADoAMQA0ADoAMAAwAFoAIgAgAC8APgA8AGQAPgAyADIAWABLAEEAdgA0ADMAQgBtAHMAcwByADAAcgBxADUANQBGAHUAdgBpAFUAVgBSAGkAVgBLAFMASQBEAGcAeAAyAHAAMgA0AFoAZwBzAGwANgBNAD0APAAvAGQAPgA8AC8AcgA%2bAA%3d%3d