外部の API を実行する
kintone カスタマイズで、外部 API を実行するための API です。
この API を利用すると、クロスドメイン制約を回避して、外部 API にリクエストを送信できます。
外部にファイルをアップロードする際には、「外部にファイルをアップロードする」を参照ください。
- PC とモバイルで利用できます。
- proxy を通しても、proxy 先のサイトに発行されるべき cookie は自動発行されません。
- 利用できる Content-Type に制限はありません。
関数
kintone.proxy(url, method, headers, data, successCallback, failureCallback);
引数
パラメータ名 | 指定する値 | 必須 | 説明 |
---|---|---|---|
url | 文字列 | 必須 | リクエスト URL |
method | 文字列 | 必須 | HTTPメソッド。 GET, POST, PUT, DELETE のいずれかを指定。 |
headers | オブジェクト | 必須 | リクエストヘッダをオブジェクトで表したものを指定。 何も指定しない場合は {} を指定します。 (例) {'Content-Type': 'application/json'} |
data | オブジェクトまたは文字列 | 必須 | リクエストに載せるデータ。 何も指定しない場合は {} を指定します。 POST/PUT の場合のみ利用され、GET/DELETE の場合は無視されます。 GET/DELETE の場合、URL の QueryString にパラメータを乗せる必要があります。 |
successCallback | 関数 | 省略可 |
proxy 先へのリクエストが完了したときに実行されるコールバック関数。 |
failureCallback | 関数 | 省略可 |
proxy API へのリクエストが失敗したときに実行されるコールバック関数。 |
返り値
引数の successCallback を省略した時、kintone.Promise オブジェクトを返します。
参考: イベントハンドラを登録する
successCallback を指定した場合、返り値はありません。
サンプル
コールバックを使った記述方法
kintone.Promiseオブジェクトを使った記述方法
注意事項
- url で存在しないサーバーを指定した場合、レスポンスはステータスコード「503」(DNS Cache Missing)のエラーとなります。
- テスト環境等で、IP 制限をしている環境で接続元ドメイン内の別アプリにアクセスする場合は、以下のページに記載の IP アドレスを許可することでアクセス可能となります。
cybozu.comが使用するドメインとIPアドレス
※ ただし kintone.proxy を利用して外部から自由にアクセス可能となるため、セキュリティの観点から推奨されません。接続元ドメインへのアクセスについては kintone.api をご利用ください。
制限事項
- proxy 先が返すレスポンスボディは、文字列のみ対応しています。画像などのバイナリデータは取得できません。
- proxy 先が返すレスポンスヘッダの上限は 100 行となり、1 行あたりの最大長は 8192bytes です。
- proxy 先が返すレスポンスボディの上限は 10MB です。
- 上限を超えた場合はエラーとなります。
- 自己証明書を使ったサーバーとの通信はできません。
- HTTP メソッドに POST/PUT のいずれかを指定した場合、"Content-Length"ヘッダと"Transfer-Encoding"ヘッダは、内部的に自動で付加されるため、ユーザーからのリクエスト時に手動で設定することはできません。設定するとエラーが発生します。
外部にファイルをアップロードする
kintone カスタマイズで、外部のシステムにファイルをアップロードするための API です。
この API を利用すると、クロスドメイン制約を回避して、外部 API にリクエストを送信できます。
- PC とモバイルで利用できます。
- proxy を通しても、proxy 先のサイトに発行されるべき cookie は自動発行されません。
- 利用できる Content-Type に制限はありません。
関数
kintone.proxy.upload(url, method, headers, data, successCallback, failureCallback);
引数
パラメータ名 | 指定する値 | 必須 | 説明 |
---|---|---|---|
url | 文字列 | 必須 | リクエストURL |
method | 文字列 | 必須 | HTTP メソッド。 POST, PUT のいずれかを指定。 |
headers | オブジェクト | 必須 | リクエストヘッダをオブジェクトで表したものを指定。 何も指定しない場合は{}を指定します。 (例) {'Content-Type': 'application/json'} |
data | オブジェクト | 必須 | リクエストに載せるデータ。
{ 'format': proxy 先へデータをアップロードするときのフォーマット, 'value': アップロードするデータ }format は文字列で、"RAW" のみ指定できます。 value は Blob 型 (File 型を含む) の値。value のサイズは 200MB までです。 |
successCallback | 関数 | 省略可 |
proxy 先へのリクエストが完了したときに実行されるコールバック関数。 |
failureCallback | 関数 | 省略可 |
proxy API へのリクエストが失敗したときに実行されるコールバック関数。 |
返り値
引数の successCallback を省略した時、kintone.Promise オブジェクトを返します。
参考: イベントハンドラを登録する
successCallback を指定した場合返り値はありません。
サンプル
コールバックを使った記述方法
kintone.Promise オブジェクトを使った記述方法
注意事項
- url で存在しないサーバーを指定した場合、レスポンスはステータスコード「503」(DNS Cache Missing)のエラーとなります。
制限事項
- proxy 先が返すレスポンスボディは、文字列のみ対応しています。画像などのバイナリデータは取得できません。
- proxy 先が返すレスポンスヘッダの上限は 100 行となり、1 行あたりの最大長は 8192bytes です。
- proxy 先が返すレスポンスボディの上限は 10MB です。
- 上限を超えた場合はエラーとなります。
- 対象ブラウザは、Internet Explorer11、最新の Firefox、最新の Chrome、最新の Safari、最新の iOS Safari、最新の Android Chrome となります。
- 自己証明書を使ったサーバーとの通信はできません。
- "Content-Length"ヘッダと"Transfer-Encoding"ヘッダは、内部的に自動で付加されるため、ユーザーからのリクエスト時に手動で設定することはできません。設定するとエラーが発生します。
関連 Tips
記事に関するフィードバック
記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。