Javascript Zendesk应用程序错误&;Webhook Post延迟/失败

Javascript Zendesk应用程序错误&;Webhook Post延迟/失败,javascript,webhooks,zendesk,Javascript,Webhooks,Zendesk,我正在构建一个Zendesk应用程序,它可以将各种信息发布到webhook。目前,我遇到两个问题。按下发送电子邮件按钮时,client.invoke()函数表示它不是控制台中的函数。此外,有时按下按钮后,应用程序将成功发布到webhook,其他时候它根本不会发布。我无法缩小它发布时出现差异的原因。我不确定这是否与我构建的应用程序有关,或者与Zendesk交互的问题有关 以下是应用程序: var client=ZAFClient.init(); invoke('resize',{width:'

我正在构建一个Zendesk应用程序,它可以将各种信息发布到webhook。目前,我遇到两个问题。按下发送电子邮件按钮时,
client.invoke()
函数表示它不是控制台中的函数。此外,有时按下按钮后,应用程序将成功发布到webhook,其他时候它根本不会发布。我无法缩小它发布时出现差异的原因。我不确定这是否与我构建的应用程序有关,或者与Zendesk交互的问题有关

以下是应用程序:


var client=ZAFClient.init();
invoke('resize',{width:'100%',height:'450px'});
client.get('ticket.brand.subdomain')。然后(
功能(数据){
var subdomain=data['ticket.brand.subdomain'];
log('Zendesk子域是'+子域);
document.getElementById('subdomainform')。value=subdomain;
}
);
client.get('ticket.organization.id')。然后(
功能(数据){
var org_id=data['ticket.organization.id'];
log('organid为'+organu-id');
document.getElementById('orgidform')。value=org\u id;
}
);
名字
姓
电子邮件
住宅的
商业的
单击以发送电子邮件

以下字段仅为准备好的字段,需要提交。如果您没有看到它们,请刷新应用程序

让内容=[]; const addDay1=(ev)=>{ 让信息={ id:Date.now(), firstName:document.getElementById('firstName')。值, lastName:document.getElementById('lastName')。值, 电子邮件:document.getElementById('email')。值, 子域:document.getElementById('subdomainform')。值, orgid:document.getElementById('orgidform')。值, rescom:document.getElementById('rescom').value } 内容。推送(内容); document.forms[0].reset(); 常量Url='{PLACEHOLDER}'; $.ajax({ url:“{WEBHOOK url}”, 类型:“POST”, 数据类型:“json”, 数据:{信息}, 完成:函数(){alert(“Failure”)} }); } document.addEventListener('DOMContentLoaded',()=>{ document.getElementById('btn')。addEventListener('click',addDay1); });
这是由Zendesk的社区经理解决的。见下文:

在尝试执行此操作之前,请确保ZAFClient已完全注册 后续的ZAFClient方法。比如:

client.on('app.registered', e => {

  client.get('ticket.brand.subdomain').then(
    function(data) {
      var subdomain = data['ticket.brand.subdomain'];
      console.log('Zendesk Subdomain is ' + subdomain);
      document.getElementById('subdomainform').value = subdomain;
    }
  );

  client.get('ticket.organization').then(
    function(data) {
      var org_id = data['ticket.organization.id'];
      console.log('Org id is ' + org_id);
      document.getElementById('orgidform').value = org_id;
    }
  );

}) The "not a function in the console" error is caused from the app's HTML page being resubmitted again when you click the button. In
Zendesk应用程序框架,来自应用程序的连接(使用 主代理窗口的ZAFClient.init())是通过参数完成的 在框架首次加载应用程序时传递给应用程序的。你可以 如果要查找以下内容,请在浏览器的“网络”选项卡中查看 “iframe.html?origin=https%3A%2F%2your_subdomain.zendesk.com&app_guid=ff7133010-abff-4f1c-a7bf-ff7133fff7133” --建立连接需要使用origin和app_guid参数。重新提交页面时,将不再传递这些参数 重新加载新页面和对ZAFClient.init()的新调用不起作用 成功初始化。因此,导致错误时,现在无效 “客户端”对象正试图用于调用“调用”。你必须 将这些应用程序页面视为单页应用程序

呸!尽管如此,您仍然可以使用HTML功能, 只是不要让它在按下按钮时重新提交整个页面 按下。您可以通过向按钮标签添加type=“button”来完成此操作

单击以发送电子邮件

另请参见:不提交表单的HTML按钮

希望这能让你上路


这是由Zendesk的社区经理解决的。见下文:

在尝试执行此操作之前,请确保ZAFClient已完全注册 后续的ZAFClient方法。比如:

client.on('app.registered', e => {

  client.get('ticket.brand.subdomain').then(
    function(data) {
      var subdomain = data['ticket.brand.subdomain'];
      console.log('Zendesk Subdomain is ' + subdomain);
      document.getElementById('subdomainform').value = subdomain;
    }
  );

  client.get('ticket.organization').then(
    function(data) {
      var org_id = data['ticket.organization.id'];
      console.log('Org id is ' + org_id);
      document.getElementById('orgidform').value = org_id;
    }
  );

}) The "not a function in the console" error is caused from the app's HTML page being resubmitted again when you click the button. In
Zendesk应用程序框架,来自应用程序的连接(使用 主代理窗口的ZAFClient.init())是通过参数完成的 在框架首次加载应用程序时传递给应用程序的。你可以 如果要查找以下内容,请在浏览器的“网络”选项卡中查看 “iframe.html?origin=https%3A%2F%2your_subdomain.zendesk.com&app_guid=ff7133010-abff-4f1c-a7bf-ff7133fff7133” --建立连接需要使用origin和app_guid参数。重新提交页面时,将不再传递这些参数 重新加载新页面和对ZAFClient.init()的新调用不起作用 成功初始化。因此,导致错误时,现在无效 “客户端”对象正试图用于调用“调用”。你必须 将这些应用程序页面视为单页应用程序

呸!尽管如此,您仍然可以使用HTML功能, 只是不要让它在按下按钮时重新提交整个页面 按下。您可以通过向按钮标签添加type=“button”来完成此操作

单击以发送电子邮件

另请参见:不提交表单的HTML按钮

希望这能让你上路