【解決済み】FlutterFlow API MakePrivateを使用した際のAPI呼び出しの失敗について

通常のAPIの動作は問題ないのですが、MakePrivateを使った時だけ、エラーが表示されて動作がしなくなる。

例) Content typeError

やったこと:

  1. FlutterFlow APIのMakePrivate機能を使用して、APIをプライベートにした。
  2. API呼び出しの「プライベートにする」をオンにした。

やったこと:
bodyTypeに応じて適切なContent-Typeヘッダーを設定し、リクエストボディを返してますが、ここが、エラーになってしまいます。

{
“error”: “Bad Request”,
“message”: “Invalid JSON format”,
“code”: 400
}

API 呼び出しの「プライベートにする」をオンにすると、Google Cloud Functions に
「ffPrivateAPICall」と呼ばれるサーバーレス関数が作成される。

その時に、出力データとして、ffPrivateApiCallがありますが、
createBodyが作成されJSON,TEXT が勝手に生成されて、何も選択ないと、createBodyは勝手にtextを選択してしまいます。

createBody関数はbodyTypeに応じて適切なContent-Typeヘッダーを設定し、リクエストボディを返すようになっています。しかし、bodyTypeが明示的に指定されていない場合、createBodyがデフォルトでtextを選択してしまうため、API呼び出しが失敗している可能性があります。
この問題を解決するには、API呼び出しの設定で、出力データのフォーマットを明示的にJSONに指定する必要があります。これにより、createBody関数がJSONを選択し、適切なContent-Typeヘッダーが設定されるため、API呼び出しが成功するはずです。 Copy

参考データ
function createBody({ headers, params, body, bodyType }) {
switch (bodyType) {
case “JSON”:
headers[“Content-Type”] = “application/json”;
return body;
case “TEXT”:
headers[“Content-Type”] = “text/plain”;
return body;
case “X_WWW_FORM_URL_ENCODED”:
headers[“Content-Type”] = “application/x-www-form-urlencoded”;
return qs.stringify(params);
}
}

【参考】FF プライベート API クラウド機能を使用すると、リクエストボディを含む POST リクエストが失敗する