kintoneStripe

kintoneのAPIプロキシーでFormデータを送信する方法

Stripe APIをkintoneのApp Proxyから呼び出すための方法を紹介しました。kintoneプラグインのAPIプロキシー機能を使用することで安全にAPIキーを管理できます。Formデータを作成する際にはURLSearchParamsを使用する方法が良いです。また、Stripeとkintoneを連携させるために、kintoneプラグイン経由でStripe APIを呼び出すサンプルコードも紹介しました。

広告ここから
広告ここまで

Stripe APIなど、外部のAPIに対して、JSONではなくFormデータを送信する方法を調べました。

Stripe APIをkintoneのApp Proxyから呼び出す

サンプルとして、Stripe APIを呼び出すラッパー関数を作ります。

async function callStripeAPI<Body = any, Result = any>(
  path: string,
  method: "GET" | "POST" | "PUT" | "DELETE",
  body?: Body
) {
  const apiResult = await new Promise<Result>((resolve, reject) => {
    kintone.plugin.app.proxy(
      PLUGIN_ID,
      `https://api.stripe.com/v1/${path}`,
      method,
      {
        "Content-Type": "application/x-www-form-urlencoded",
        "Authorization": "Bearer sk_test_xxx",
      },
      body || {},
      (response) => {
        const result = JSON.parse(response);
        resolve(result);
      },
      (e) => {
        console.log(e);
        reject(e);
      }
    );
  });
  return apiResult;
}

今回は簡略化のためにAPIキーを直接記述していますが、kintoneプラグインでは、Proxy Configを利用して安全にAPIキーを管理する仕組みが用意されています。

Qiitaに「kintoneプラグインのAPIプロキシー機能を使って、プラグインからStripe APIを呼び出す方法」として記事を公開していますので、実案件で試されたい方は、こちらもあわせてご確認ください。

Formデータは、URLSearchParamsで生成する

new FormData()も試したのですが、kintone.plugin.app.proxyでAPIを呼び出す場合、URLSearchParamsを使うのが良いみたいです。

    const recordData = kintone.app.record.get();
    const searchParams = new URLSearchParams("");
    searchParams.set("name", recordData.record.宛名.value);
    searchParams.set("description", "Created by kintone plugin");
    const customers = await callStripeAPI(
      "customers",
      "POST",
      searchParams.toString()
    );
    console.log(customers);
  });

Constructorでname-xxxのように文字列として設定しても良さそうですが、個人的な好みもあってsetで都度登録させています。

この書き方ならば、kintoneプラグイン経由でStripeとkintoneを連携させたりもできるようになります。

参考URLなど

ブックマークや限定記事(予定)など

WP Kyotoサポーター募集中

WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。

14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。

広告ここから
広告ここまで

Related Category posts