【问题标题】:Teams Tab API access to Sharepoint FIle Contents causing 405 on OPTIONS call团队选项卡 API 访问 Sharepoint 文件内容导致 405 选项调用
【发布时间】:2019-11-04 17:29:34
【问题描述】:
  • 在 Microsoft Teams 中,我创建了一个在选项卡中列出特定类型文件的应用程序
  • 用例是我的Javascript需要读取文件的内容
  • Tab 中的 Javascript已经成功获得了 ID 令牌和访问令牌(通过 ADAL)
  • 此代码已经成功列出了当前登录用户可以看到的组中的 DriveItems 通过https://graph.microsoft.com/v1.0/groups/${groupId}/drive/root/search(q='{pdf}');`
  • 当我尝试通过 https://graph.microsoft.com/v1.0/groups/${groupId}/drive/items/${itemId}/content

    • 第一次调用返回itemId

    • 我成功看到来自https://graph.microsoft.com 端点的HTTP 302 重定向到https://<thesharepointsite>.sharepoint.com/<etc>

  • Axios(和 Microsoft Graph Javascript API)成功地遍历到重定向

  • 邮递员,使用相同的https://graph... URL 和 AccessToken 成功地从 302 重定向下载二进制内容(所以这不是 Auth 问题)

问题

  • 在 Microsoft Teams 中,在我的选项卡中,浏览器(内置于 Teams 桌面应用程序中)对 https://<thesharepointside>.sharepoint.com 的 HTTP 调用在 OPTIONS 调用上响应 405 错误
  • 通常这意味着存在 CORS 问题,因此解决方案是将域添加到应用的 validDomains

尝试的解决方案

  • Manifest 在 validDomains 中有以下条目
"validDomains": [
       ...

        "*.sharepoint.com",
        "graph.microsoft.com",
        "login.microsoftonline.com"
    ]

在所有情况下,我都会在 OPTIONS 调用中得到 405

没有从 Microsoft Teams 的选项卡中下载文件。

建议?

【问题讨论】:

    标签: microsoft-teams


    【解决方案1】:

    这可能将来回答你的问题

    • 我的代码现在执行https://graph.microsoft.com/v1.0/groups/${groupId}/drive/items/${itemId}
    • 这是DriveItem实例,并在 JSON 响应中返回一个属性: @microsoft.graph.downloadUrl

    • 根据Microsoft Graph API Download File content return Unauthorized 401,这是一个短暂的 URL,您可以在没有身份验证标头的情况下遍历

    • 我的文件内容已成功返回(没有 CORS 问题)

    • 我现在可以在标签中下载DriveItem 的内容

    • 我希望这对某人有所帮助

    【讨论】:

      猜你喜欢
      • 2019-02-22
      • 2021-05-28
      • 1970-01-01
      • 1970-01-01
      • 2019-03-11
      • 1970-01-01
      • 2018-09-13
      • 1970-01-01
      • 2020-06-16
      相关资源
      最近更新 更多