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 で動作を確認しています。