【问题标题】:How to Develop Office 365 Custom File Handler如何开发 Office 365 自定义文件处理程序
【发布时间】:2017-02-02 08:21:32
【问题描述】:

我听说 Microsoft 为 Office 365 中的自定义(非 Microsoft)文件类型提供了文件处理程序插件。

我尝试按照找到的教程here 执行此操作,但它似乎有点过时(尽管它最后一次更新是在 2017 年 1 月),因为提到的几件事与我的环境不同 - 我在 Windows 上使用 Visual Studio 2015 10.

所以基本上这就是我想要实现的目标。 我有一个带有.encx 扩展名的自定义文件类型,它只是一个使用我们自己的加密算法加密的docx 文件。我可以访问 Office 365 租户管理员帐户。我想让我们的用户能够在 OneDrive 网络界面中打开这个加密文件。

这是我的环境:
Microsoft Visual Studio Enterprise 2015 版本 14.0.25123.00 更新 2
Microsoft .NET Framework 版本 4.6.01586
Azure SDK v2.9.6

我基于 VS 2015 的 Office 类别中的文件处理程序应用程序模板创建了一个新的 Visual C# 项目。
我还为 Office 365 API 添加了连接服务。
因为我在 Azure 帐户上有免费试用订阅,所以我添加了所有必需的东西,比如 SQL 数据库服务器、SQL db、Azure Active Directory - 基本上是上面教程中解释的所有东西。然后我出版了,出版成功了。我可以在浏览器中的 *.azurewebsites.net 上实时看到它,并且登录甚至可以正常工作。

我使用教程中描述的插件管理器示例 Azure 应用程序来更新插件设置,如文件图标、预览/打开/新端点链接等,然后点击更新按钮。现在我上传了一些 .encx 文件到 OneDrive 帐户,但它仍然没有显示自定义图标,也没有在自定义文件处理程序中打开它(它只是触发浏览器文件下载)。

我一直在纠结这个问题,因为我在网上找不到任何有用/详细的答案。

我非常需要微软员工的帮助。

更新:

现在我取得了一些进展 - 我可以看到自定义文件图标,.encx 文件现在会在我选择它时尝试将某些内容显示为预览,如果我单击它会在新选项卡中打开。
问题是预览,打开适用于我的本地主机 URL,但不适用于已发布的 Azure Web 服务 URL。上面写着Sorry, something went wrongInvalid URL: |0.

更新 2:

这是 Azure Web 服务应用程序的清单文件:

{
  "appId": "0afc5455-a05b-4cc1-b241-89c717d9bce4",
  "appRoles": [],
  "availableToOtherTenants": false,
  "displayName": "MyFileHandler",
  "errorUrl": null,
  "groupMembershipClaims": null,
  "homepage": "http://my***.azurewebsites.net/",
  "identifierUris": [
    "https://filevisor.net/MyFileHandler"
  ],
  "keyCredentials": [],
  "knownClientApplications": [],
  "logoutUrl": null,
  "oauth2AllowImplicitFlow": false,
  "oauth2AllowUrlPathMatching": false,
  "oauth2Permissions": [
    {
      "adminConsentDescription": "Allow the application to access MyFileHandler on behalf of the signed-in user.",
      "adminConsentDisplayName": "Access MyFileHandler",
      "id": "5b21f973-edd5-4ace-a369-cfff0ed3b8fa",
      "isEnabled": true,
      "type": "User",
      "userConsentDescription": "Allow the application to access MyFileHandler on your behalf.",
      "userConsentDisplayName": "Access MyFileHandler",
      "value": "user_impersonation"
    }
  ],
  "oauth2RequirePostResponse": false,
  "passwordCredentials": [
    {
      "customKeyIdentifier": null,
      "endDate": "2018-02-02T05:22:35.7514025Z",
      "keyId": "b19de090-a661-402f-8ae2-624f148ff6fd",
      "startDate": "2017-02-02T05:22:35.7509019Z",
      "value": null
    }
  ],
  "publicClient": false,
  "replyUrls": [
    "http://my***.azurewebsites.net/"
  ],
  "requiredResourceAccess": [
    {
      "resourceAppId": "00000002-0000-0000-c000-000000000000",
      "resourceAccess": [
        {
          "id": "311a71cc-e848-46a1-bdf8-97ff7156d8e6",
          "type": "Scope"
        }
      ]
    },
    {
      "resourceAppId": "00000003-0000-0000-c000-000000000000",
      "resourceAccess": [
        {
          "id": "17dde5bd-8c17-420f-a486-969730c1b827",
          "type": "Scope"
        }
      ]
    }
  ],
  "samlMetadataUrl": null,
  "extensionProperties": [],
  "objectType": "Application",
  "objectId": "0bdea3fb-5ff7-4b8c-aa2c-6556a4c2ce46",
  "deletionTimestamp": null,
  "createdOnBehalfOf": null,
  "createdObjects": [],
  "manager": null,
  "directReports": [],
  "members": [],
  "memberOf": [],
  "owners": [],
  "ownedObjects": []
}

【问题讨论】:

  • 当你说它“没有......在自定义文件处理程序中打开它”时,你的意思是预览没有出现或者文件不会在自定义编辑器中打开?此外,您能否使用 Fiddler 工具 (telerik.com/fiddler) 在单击文件的“...”链接时查看发送了哪些 POST 请求(以及收到了哪些响应)?还有什么时候打开文件进行编辑?
  • 当我说“它没有在自定义文件处理程序中打开”时,我的意思是 OneDrive 根本无法识别注册的自定义文件扩展名 - 图标不会改变,它不会在其中打开文件处理程序应用程序新标签,而是触发正常下载,就像常规的未知文件类型一样。
  • 当我在另一台计算机上尝试时出现的图标 - 看起来像缓存问题?
  • @RickKirkham-Microsoft 我已经更新了问题 - 可能的原因是什么?
  • 我必须尝试将其分成 2 个 cmets。我发现很难理解什么是有效的,什么是无效的。你经常使用“它”这个词,在很多情况下我无法分辨“它”指的是什么。您能否重述问题并用特定名词替换“它”?另外,(1)您能否将清单添加到问题中?在 Azure 上托管应用程序时使用的那个。 (您可以伪装域。)(

标签: azure visual-studio-2015 office365 add-in filehandler


【解决方案1】:

我在您的清单中没有看到“addIns”属性,如下所述:Configure and update file handlers in Office 365。可能只是从下载的清单副本中抑制了此属性,但如果您尚未将此属性添加到清单中,请添加它并查看是否有帮助。

【讨论】:

  • 没时间听你的回答,我会尽快尝试你的建议。
猜你喜欢
  • 2020-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-24
  • 1970-01-01
相关资源
最近更新 更多