PHP Tips : kintone REST APIの認証設定について
はじめに
kintone REST APIを外部からリクエストするためは、
パスワード認証
のためのヘッダーが必要となります。
この認証設定について、PHPでフォーム設計情報を取得するサンプルを交えて説明します。
kintone REST APIに最低限必要な情報は、サブドメインおよびユーザーのログイン名とパスワードです。
また、Basic認証を設定している場合は、Basic認証のログイン名とパスワードも必要となります。
サブドメイン
サブドメインとは、普段アクセスしているcybozu.comのURL「https://sample.cybozu.com」の sample のことです。
このサブドメインは、サイボウズドットコム ストアのドメイン管理で変更できます。
kintone REST APIは、https://sample.cybozu.com/k/v1/(コマンド名).jsonというURLで実行します。
ちなみに、ゲストスペース内アプリの場合は、https://sample.cybozu.com/k/guest/(スペースのID)/v1/(コマンド名).jsonというURLで実行します。
パスワード認証
kintone REST APIを実行するリクエストには、
パスワード認証
のためのヘッダーを追加する必要があります。
このヘッダーには、普段利用しているログイン名とパスワードを利用します。
kintone REST API用に新しいユーザーを作成してもよいかもしれません。
パスワード認証は、リクエストヘッダーに「X-Cybozu-Authorization」を追加し、「ログイン名:パスワード」をBASE64エンコードしたものを値に指定します。
PHPで記述すると以下のようになります。
|
|
Basic認証
Basic認証は、サイボウズドットコム ストアのセキュリティと認証で設定できます。
設定している場合は、リクエストヘッダーに「Authorization」ヘッダーを追加し、「Basic 」と「ログイン名:パスワード」をBASE64エンコードしたものを値に指定する必要があります。
PHPで記述すると以下のようになります。
|
|
アプリID
アプリIDは、アプリの一覧ページのURLの "k" のあとの部分です。
たとえばURLがhttps://sample.cybozu.com/k/336/の場合、「336」がアプリIDです。
リクエストヘッダー
リクエストヘッダーは、
kintone REST APIの共通仕様のリクエストヘッダー
を参考に、「Host」、「Content-Type」、「X-Cybozu-Authorization」を設定した配列を用意します。
Basic認証を利用する場合は、以下を追加してください。
|
|
HTTPコンテキスト
PHPのfile_get_contents
を利用してkintone REST APIでリクエストするには、URLとHTTPコンテキストが必要になります。
HTTPコンテキストを生成するには、stream_context_create
を使います。
URLは、https://sample.cybozu.com/k/v1/form.jsonになります。
サンプル
それでは、上記の情報をもとにkintoneアプリのフォーム設計情報を取得し、結果をダンプ出力してみましょう。
フォーム設計情報を取得するAPIは、
フォームの設計情報を取得する
です。
|
|
フォームの設計情報を取得する のレスポンスの例のような結果が得られたのではないでしょうか?
おわりに
kintone REST APIでの認証設定についてご理解いただけましたでしょうか?
kintone REST APIの認証には、APIトークンを利用する方法もあります。
APIトークンについては、
APIトークンを使ってみよう
を参考にしてください。
今回はサンプルとしてfile_get_contents
を利用しましたが、実際にはライブラリを利用した方がよいでしょう。
今後、一般的によく利用されるHTTPクライアントライブラリの「HTTP_Request2」や「guzzle」のTipsも紹介したいと思っています。
このTipsは、2014年7月版kintoneで動作を確認しています。