0

假设 BIM360 管理员已将我的 BIM360 应用程序从 BIM360 App Store 添加到他/她的 BIM360 帐户,并完成了配置步骤。

之后,当用户单击“打开”链接(屏幕截图中显示的示例)时,将打开我的应用程序中的一个页面。

在这个页面中,我需要确定这个特定的 BIM360 帐户在我的应用程序中是否已经有相应的帐户。

为了进一步澄清,我的应用程序是一个多租户云服务,每个租户/帐户都与一个 BIM360 帐户绑定,而不是与单个 BIM360 用户绑定。因此,无论登录 BIM360 页面的 BIM360 用户,我都需要将他/她重定向到与 BIM360 帐户对应的帐户。

如果我的应用程序中没有相应的帐户(这是第一次访问的情况),我必须将用户重定向到“注册”页面。

问题:当用户通过 BIM360 页面中的“打开”链接打开我的应用程序时,如何找到 BIM360 帐户 ID?

一种可能的解决方法(实际上是 hack)是在 HTTP 标头(在我的页面上)中使用“引荐来源”来获取 BIM360 页面的 URL,并从中刮取帐户 ID。

这样做的正确方法是什么?你能指出我的示例代码吗?

谢谢 显示“打开”按钮的示例页面

4

1 回答 1

0

当最终用户打开您的应用程序时,您应该要求使用他/她的 Autodesk 帐户登录,这会产生一个三足 OAuth 访问令牌。

这样,您的应用程序可以调用GET Hubs,它返回用户有权访问且您的应用程序也有权访问的集线器列表。由于这包括所有集线器,请检查attribute.extension.type==hubs:autodesk.bim360:Account并且集线器 ID 将是BIM 360 Account。您还可以检查带有b.前缀的集线器 ID。

请注意,集线器 ID 带有b.前缀,您需要将其删除才能获得正确的 BIM 360 帐户 ID。

最后,使用您的应用程序的最终用户可能为您的应用程序BIM 360 Docs配置了多个中心,例如与多个项目一起工作的承包商,因此请考虑这种情况。

查看这篇文章以了解其他一些注意事项。

编辑

来自评论(23/4/2018):

您建议的解决方法并不能真正解决问题。我需要一种方法来确定用户单击“打开”链接的页面的 BIM360 帐户 ID。

用户点击“打开”后,您的应用需要请求登录,这会为您的应用提供一个三足令牌。这样,调用 GET Hubs 端点,过滤 BIM 360 Docs 的中心,如果有多个,请用户选择中心/帐户,然后您就有帐户 ID。

于 2018-04-19T12:02:40.473 回答