外部の API を実行する

目次

外部の API を実行する

kintone から外部サービスの API を実行します。
この API を利用すると、クロスドメイン制約を回避して、外部 API にリクエストを送信できます。 外部にファイルをアップロードする際には、 外部にファイルをアップロードする を参照してください。

関数

PC/モバイル

kintone.proxy(url, method, headers, data, successCallback, failureCallback)

引数

引数 必須 説明
url 文字列 必須 実行する API の URL
method 文字列 必須 API の実行に使用する HTTP メソッド
次のいずれかの値を指定します。
  • GET
  • POST
  • PUT
  • DELETE
headers オブジェクト 必須 リクエストヘッダー
例:
{
"Content-Type": "application/json"
}
何も指定しない場合は {} を指定してください。
data オブジェクトまたは文字列 必須 リクエストボディ
何も指定しない場合は {} を指定してください。
HTTP メソッドに POST や PUT を指定したときだけ送信されます。
HTTP メソッドが GET や DELETE のリクエストで、リクエストボディを指定したい場合には、url のクエリ文字列として指定してください。
successCallback 関数 省略可 リクエストが完了したときに実行されるコールバック関数
コールバック関数の引数には、次の情報が渡されます。
  • 第 1 引数:レスポンスボディ(文字列)
  • 第 2 引数:ステータスコード(数値)
  • 第 3 引数:レスポンスヘッダー(オブジェクト)
省略すると、 kintone.Promise オブジェクト が返り、レスポンスボディ、ステータスコード、レスポンスヘッダーが格納された配列で解決されます。
failureCallback 関数 省略可 リクエストが失敗した時に実行されるコールバック関数
省略すると、 kintone.Promise オブジェクト が返り、プロキシ API のレスポンスボディ(文字列)で棄却されます。

戻り値

successCallback を指定した場合、戻り値はありません。
引数の successCallback を省略した場合、 kintone.Promise オブジェクト が返ります。

サンプルコード

コールバックを使った記述方法
1
2
3
4
5
6
7
kintone.proxy('https://api.example.com', 'GET', {}, {}, (body, status, headers) => {
  // success
  console.log(status, JSON.parse(body), headers);
}, (error) => {
  // error
  console.log(error); // proxy APIのレスポンスボディ(文字列)を表示
});
kintone.Promise オブジェクトを使った記述方法
1
2
3
4
5
6
7
8
try {
  const resp = await kintone.proxy('https://api.example.com', 'GET', {}, {});
  // success
  console.log(resp);
} catch (error) {
  // error
  console.log(error);
}

注意事項

  • 存在しないサーバーを url に指定した場合、ステータスコード「503」(DNS Cache Missing)のエラーが返ります。
  • IP アドレス制限を設定している場合、この JavaScript API を使って同一ドメインの別アプリに対し kintone REST API を実行するには、kintone の IP アドレスを許可してください。
    IP アドレスの詳細は、 cybozu.com が使用するドメインと IP アドレス (External link) を参照してください。
    ただし、外部 API を実行する API を通じてすべての kintone 環境から自由にアクセスできるようになるため、セキュリティの観点から推奨していません。
    同一ドメインに対するリクエストは、 kintone REST API リクエストを送信する API を使用してください。
  • この API を使って外部の API を実行しても、実行した API 先で発行されるべき Cookie は、自動で発行されません。
  • HTTP メソッドに POST または PUT を指定した場合、「Content-Length」と「Transfer-Encoding」ヘッダーは自動で付加されます。
    リクエストするときに明示的に指定すると、エラーが発生します。
  • 利用できる「Content-Type」に制限はありません。

制限事項

  • 実行する外部 API のレスポンスに関する制限は、次のとおりです。
    • レスポンスヘッダーの上限は、100 行で、1 行あたりの最大長は 8,180bytes です。
    • レスポンスボディの上限は 10MB です。上限を超えるとエラーになります。
    • レスポンスボディは文字列のみ対応しています。画像などのバイナリデータは取得できません。
  • 自己証明書を使ったサーバーとの通信はできません。