0

在测试步骤中,我无法从我的站点到 zapier 应用程序中找到有关可接受的响应内容或代码状态的信息。

我在这个网站的 Laravel 和 Zapier 应用程序上有我的网站。在我的 Zapier 应用程序中,我有一个操作:“创建新项目”。我根据示例进行了“创建” 。除测试步骤外,一切正常。我使用以下 zap 进行了测试:

  • Trello ->“创建新卡”触发器。测试成功。
  • 我的应用程序->“创建新项目”。测试失败,出现We had trouble sending your test through. Could not handle special, non-standard characters. Please contact support.

奇怪的是,项目创建成功。因此,我认为问题在于我的网站对 zapier 的响应:

问题截图

// creates/project.js

// My perform function:
perform: (z, bundle) => {
  const promise = z.request({
    url: `${process.env.BASE_URL}/api/folder`,
    method: 'POST',
    body: JSON.stringify({
      title: bundle.inputData.title,
    }),
    headers: {
      'content-type': 'application/json',
    }
  });

  return promise.then((response) => JSON.parse(response.content));
}
//ZapierController.php

public function addFolder(Request $request)
{
    // Made record to DB, and other, after this returned same data which in request

    return response()->json(['title' => $request['title']]);
}

预期结果 - “测试此步骤”测试成功。谁能帮我?

4

1 回答 1

0

大卫在这里,来自 Zapier 平台团队。

我已经回答了你的支持票,但我想我会在这里回复,以防其他人有同样的问题。

zapier logs当您在 cli 上运行时,根本问题就很清楚了:

== Log
Unhandled error: CheckError: Invalid API Response:
  - Got a non-object result, expected an object from create ("title")
What happened:
  Executing creates.сFolder.operation.perform with bundle
  Invalid API Response:
  - Got a non-object result, expected an object from create ("title")

您的服务器可以回复任何 2xx 状态码,但输出必须是有效的 json。类似的东西{"title": "my title here"}肯定会起作用。用户发现获取有关他们刚刚创建的项目的信息更有帮助,因此名称、ID 等会更好。

至于为什么这会作为字符编码问题浮出水面,我不知道。我们计划深入了解它!

于 2019-01-11T19:36:03.070 回答