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でも展開される場合はテストが必要です。

問い合わせ導線の考慮

プラグイン製品の場合、利用者が画面上から問い合わせ先を容易に認識できるよう設計してください。
具体的な対応の例は次のとおりです。

  • プラグインの外部リンク設定(manifest.jsonのhomepage_urlパラメーター)に開発元や製品ページのURLを設定する。
    (参考: kintone プラグイン開発手順
  • プラグインの設定画面内に問い合わせの導線を設置する。