【问题标题】:Retrieving URL parameters from Zendesk app从 Zendesk 应用程序检索 URL 参数
【发布时间】:2022-12-25 16:52:09
【问题描述】:

我想在我的“CRM”(几乎没有选项的传统自定义 CRM)中生成一个链接,允许用户访问特定的 Zendesk 配置文件。问题是,在 CRM 中,我无权访问 Zendesk 中的用户 ID,我只有电子邮件和内部 ID(这是 Zendesk 用户的外部 ID)。

为了做到这一点,我想:

  • 生成类似于“https://[我的 ZD 域].zendesk.com/agent?user_email=test@test.com”的 Zendesk 链接
  • 使用 Zendesk 应用程序获取参数,通过 API 搜索用户并在客户端调用“routeTo”以打开用户配置文件

我的应用程序正在运行,但有一个问题:我无法检索 URL 参数。这些是我的结果:

window.location.href

结果:https://[appID].apps.zdusercontent.com/[appID]/assets/[some ID]/iframe.html?origin=https%3A%2F%2F[我的 ZD 域].zendesk.com&app_guid= [另一个ID]

这不是显示 url 参数,而是显示应用程序所在的 url

window.top.location.href

结果:请求的资源上不存在“Access-Control-Allow-Origin”标头 所以 Zendesk CORS 错误

document.referrer

结果:https://[我的ZD域].zendesk.com/ 但是没有参数

document.location.ancestorOrigins[0]

结果:https://[我的ZD域].zendesk.com 也没有参数

这些结果都没有提供 url 中的参数,我想不出其他方法来提取它们。

所以我的问题是:

  • 有没有办法从 Zendesk 应用程序获取 URL 参数(可以是背景、顶部栏甚至侧边栏)
  • 如果这不可能。有没有办法将参数传递给 https://[my ZD domain].zendesk.com/agent/search/1 以填充搜索(更糟糕的解决方案,但如果第一个不是一个选项,则会使用它)

谢谢大家的帮助,祝你有美好的一天。

【问题讨论】:

    标签: javascript zendesk zendesk-app


    【解决方案1】:

    如果它们不在同一个子域中,您将无法从 iframe 访问父 url。 但是,根据您的应用位置,您可以使用 client.context() https://developer.zendesk.com/api-reference/apps/apps-core-api/client_api/#clientcontext 访问 url 参数

    我能够从导航栏上运行的自定义应用程序中获取它们,但不能从顶部栏上运行的自定义应用程序中获取它们。

    否则,您还可以像这样生成搜索链接(您的第二个选项):

    https://yoursubdomain.zendesk.com/agent/search/1?type=user&q=yoursearchquery
    

    【讨论】:

    • 谢谢@Ingirorhaun!你是一个传奇。我必须测试 client.context() 并且正如您所说,它仅在某些情况下有效。但是,搜索查询确实满足了我们的需求,因此我们将使用此选项
    猜你喜欢
    • 2018-04-19
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    相关资源
    最近更新 更多