kintone 連携サービス開発前の確認リスト

目次

ここでは、kintone 連携サービスの企画者 / 開発者向けに、kintone 連携サービス開発前の確認項目を紹介します。
連携サービスの認定取得にあたって対応が必要になることや開発時の注意事項を事前に理解することは、よりよい製品の開発につながります。

kintone 連携サービスの認定取得に必要なこと

kintone 連携サービスの認定取得に必要な対応の一部を紹介します。
詳細は kintone 連携サービス認定基準 (External link) を確認してください。

information

kintone 連携サービスの認定を取得すると 連携ソリューションサイト (External link) に製品を掲載できます。
認定を取得するには kintone プロダクトパートナー (External link) になる必要があります。

認定を取得しない場合も連携サービスの品質向上のために確認してください。

サイボウズ製品の仕様考慮

kintone には制限値があります。
また、製品の特性を理解して設計しないとトラブルにつながる可能性が高まります。
次に記載した内容に配慮して設計してください。

非公開(内部) API は利用しない

cybozu developer network で公開していない非公開(内部)API の利用はできません。

DOM 操作時におけるトラブル対応策の用意

cybozu.com や kintone は脆弱性対応や不具合改修のために緊急リリースを実施することがあります。
また、cybozu developer network で公開していない内容は予告なく変更する可能性があります。
そのため、DOM を参照および操作する場合はトラブル発生時の対応方針や体制の用意をお願いします。

セキュアコーディングガイドラインの遵守

セキュアコーディングガイドライン の内容を遵守してください。

information

「認証/認可情報」を利用者が閲覧できる場所に保存せざるえない場合、その内容やリスクを利用者に説明することで認定できます。

データの外部送信および外部からのデータ取得を公開

kintone 外にデータを送信する場合は、利用者のセキュリティポリシー上の問題となる可能性があります。
製品機能上明らかに利用者が認識している場合は問題ありませんが、実態としては外部に送信している、という状態は認められません。
(プラグイン設定やライセンス認証のしくみに必要な情報(ドメイン名やアプリ ID)は該当しません)

利用者が登録したデータ(アプリのレコードデータ)を外部に送信もしくは外部から取得する場合、その旨を利用者に公開してください。
(製品機能上明らかな場合を除きます)

kintone 連携サービスの開発に役立つもの

kintone 連携サービスの開発に役立つものを紹介します。

JavaScript カスタマイズのプラグイン化

複数の JavaScript や CSS を 1 つにパッケージングした「プラグイン」を作成することで機能拡張や他サービス連携を実現できます。
開発手順や効率的にプラグインを開発するための情報については kintone プラグインの開発手順 プラグイン開発支援ツール群の案内 を確認してください。

クロスドメイン制約への対応

ブラウザー(kintone ではないドメイン)の JavaScript から kintone REST API を実行する場合はクロスドメイン制約を考慮する必要があります。
ブラウザー(kintone ドメイン)の JavaScript(kintone JavaScript カスタマイズ)から外部の API を実行する場合は kintone.proxy を利用することでクロスドメイン制約を回避できます。

詳細は 外部の API の実行 を確認してください。

warning
注意

制限事項があるためリクエストの可否については事前に検証してください。

外部 API の実行に必要な認証情報の隠匿

kintone JavaScript カスタマイズから外部の API を実行する場合は kintone プラグインにすることで次の 2 つに対応できます。

  • 認証情報を隠匿して外部の API を実行
  • クロスドメイン制約

詳細は kintone プラグイン開発入門【Part2:情報の隠匿方法編】 を確認してください。

warning
注意

制限事項があるためリクエストの可否については事前に検証してください。

kintone REST APIの認証

kintone REST API では複数の認証を利用できます。(参考: kintone REST API の認証
kintone JavaScript API から kintone REST API を利用する場合、セッション認証の利用を検討してください。
外部から kintone REST API を利用する場合は、権限を限定しやすい API トークンの利用をおすすめします。

API トークンの複数指定

kintone アプリはルックアップ機能によってアプリ間で連携できます。
ルックアップ機能を利用したアプリを操作する場合は API トークンをカンマ区切りで複数指定する必要があります。

詳細は 複数 API トークンを使ってできること を確認してください。

1 万件以上のレコードを取得する方法

複数のレコードを取得する API の offset に指定可能な上限は、1 万です。
1 万件を超えるレコードを取得する場合は、 カーソル API を利用する必要があります。

詳細は offset の制限値を考慮した kintone のレコード一括取得について を確認してください。

サイボウズ株式会社提供の REST API Client

開発言語が JavaScript(TypeScript)や Java の場合はサイボウズ株式会社が開発、提供しているライブラリがあります。

詳細は いろいろなプログラミング言語で kintone REST API を実行する を確認してください。

ゲストスペース配下のアプリの REST API エンドポイント

ゲストスペース配下のアプリと連携する場合は REST API エンドポイントが変わります。
変わるのはエンドポイントのみでリクエスト内容やレスポンスは変わりません。(参考: 1 件のレコードを取得する

一覧画面用のカスタマイズ

レコード詳細画面で編集や削除などを制御する JavaScript カスタマイズを実装する場合は、PC 用一覧画面のカスタマイズも必要になる可能性があります。
要件から漏れやすい箇所なのでご注意ください。

モバイル画面用のカスタマイズ

PC 用画面でカスタマイズを実装する場合は、モバイル画面(モバイル用のブラウザー画面/アプリ画面)用のカスタマイズも必要になる可能性があります。
要件から漏れやすい箇所なのでご注意ください。

詳細は kintone カスタマイズにおける PC とモバイルの違い を確認してください。

IPアドレス制限への対応

cybozu.com ではリクエスト元の IP アドレスを制限できます。(参考: IP アドレス制限 (External link)
連携サービスからのリクエストが固定 IP アドレスとなっていれば利用者はより導入しやすくなります。

ユーザーエージェントの設定

kintone REST API をブラウザー外から実行する場合は、トラブル発生時の調査のためにユーザーエージェント(「User-Agent」ヘッダー)を設定してください。
設定内容は貴社製品と特定できれば良く、フォーマットの指定はありません。
ユーザーエージェントのガイドラインは、RFC 9110 の「User-Agent」の項を参照してください。
10.1.5. User-Agent | RFC 9110 (External link)

Webhook の利用シーン

Webhook にはドメインあたり分間 60 回という制限があり、超過分はエラーになります。
エラー発生時は利用者では把握・対処できず、管理者対応を必要とする可能性があります。
そのため、重要な処理に Webhook を利用することはおすすめしません。

定期メンテナンスの考慮

日本時間の毎月第 2 日曜日、午前 1 時~ 7 時の間に定期メンテナンスを実施するため、リクエストを受け付けられない時間があります。
6 時間のうち、メンテナンスに必要な作業時間分サービスが停止します。
そのため、リトライ機能の実装や運用による対応を必要とするケースがあります。

kintone のドメイン対応

kintone は海外でも展開しており、日本は sample.cybozu.com、海外は sample.kintone.com というドメインを利用します。
ドメイン全体を入力する設計にしておくと汎用性が高くなります。

warning
注意

仕様や機能に差異があるので kintone.com でも展開される場合はテストが必要です。