ホーム>source

Zapierを使用してCRMとFacebookのリード広告を統合しています。Facebookでリードを作成し、CRMで問題なく作成できます。

ポストの成功(つまり、リードの作成に成功)の後、私は何を返すべきか興味があります。

         return Ok();

十分だっただろう。代わりに、次のようなエラーメッセージが表示されます。

-オブジェクト以外の結果を取得しましたが、create()からのオブジェクトが必要です 何が起こったのか(あなたは管理者だからこれを見ている):   バンドルでcreates.ZapLead.operation.performを実行する   無効なAPI応答:   -オブジェクト以外の結果を取得しましたが、create()からのオブジェクトが必要です

何を返す必要がありますか?

投稿するコードは次のとおりです。

perform: (z, bundle) => {
  const promise = z.request({
    url: 'https://{{bundle.authData.subdomain}}.ngrok.io/api/zapier/create/lead/' + bundle.inputData.lead_type + '/' + bundle.inputData.core_customerTypeId,
    method: 'POST',
    body: JSON.stringify({
      fields: bundle.inputData
    }),
    headers: {
      'content-type': 'application/json'
    }
  });
  // return promise.then((response) => JSON.parse(response.content));
  return promise.then((response) => {   
    if (response.status != 200) {
      throw new Error(`Unexpected status code ${response.status}`);
    }
});

何か案は?

おかげで、

あなたの答え
  • 解決した方法 # 1

    ザピアプラットフォームチームのデビッドです。

    あなたの答えは技術的には正しいですが、エラーとその解決策がなぜ機能するかについてのコンテキストを追加したいと思いました。

    Zapierはjavascriptオブジェクト(基本的には有効で {} にラップされたもの)を期待します )create関数から出てきます。だからこそ、 JSON.parse(response.content)  動作し、サーバーが言ったことを返します。コードが200でない場合、エラーがスローされますが、何も返されません 200。 undefined 以降   Object 型ではありません 、表示されているエラーがスローされます。

    一方、 {"Success":"Success","Attempt":null,"Id":null,"RequestId":null}  は完全に有効な応答(オブジェクトです!)であるため、エンドユーザーが作成された新しいリードに関するデータを返す方が便利です。そのようにして、他のアクションのためにダウンストリームで使用できます。

    他に質問がある場合はお知らせください!


    副次的な注意事項として、このエラーメッセージをより明確にする方法に非常にオープンです。開発者の多くが苦労しています。

  • 解決した方法 # 2

    見つけたと思う。成功したらこれを返す必要があるようです:

    {「成功」:「成功」、「試行」:null、「Id」:null、「RequestId」:null}

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ python - 別のデータセットの列間の差の新しいデータセットを作成します