(著者:サイボウズ KADOYA Ryo)
REST APIのURLについて
kintoneのREST APIをJavaScriptから実行するには、kintone.api()を使用します。kintone.apiの第一引数には実行するREST APIのパスを指定します
通常のアプリの場合
kintone.api('/k/v1/record', 'GET', {app: 1, id: 5}, function(resp) {});
ゲストスペース内アプリの場合
このとき、REST APIを実行するアプリがゲストスペース内アプリの場合、このパスでは実行できません。ゲストスペース内アプリのREST APIは "/k/guest/" から始まるため、通常のAPIとはエンドポイントが異なります。ゲストスペース内アプリのREST APIのパスは、例えば以下のようになります。
kintone.api('/k/guest/99/v1/record', 'GET', {app: 1, id: 5}, function(resp) {});
どちらでも使える例
このままでは、REST APIを実行するアプリが通常のアプリかゲストスペース内アプリかによって、JavaScriptの記述を変更する必要がでてきます。以下のように記述することで、通常のアプリでもゲストスペース内アプリでもコードを共通で利用できます。
kintone.api(kintone.api.url('/k/v1/records', true), 'GET', {app: 1, id: 5}, function(resp) {});
kintone.api.url()を使用することで、ゲストスペース内の場合は自動的に現在のゲストコンテキスト(/guest/{id})がURLに挿入されます。第2引数にtrueを付けることを忘れないでください。
このTipsは、2014年9月版で確認したものになります。
kintone.api.url を使って、
kintone.api(kintone.api.url('/k/v1/app/customize', true), 'GET', body, function(resp) {
のようにしても、
「ゲストスペース内のアプリを操作する場合は、リクエストの送信先を「/k/guest/(ゲストスペースのID)/v1/...」にします」
というエラーになってしまいます・・・
佐藤 様
お世話になっております。
cybozu developer network 運営事務局です。
ご質問いただいた件についてですが、
書いてくださったコードのパスの部分('/k/v1/app/customize')に誤りがあるかと思われます。
こちらを記事の本文に書かれている「/k/v1/records」のまま書いていただいて、
再度お試しいただけますでしょうか。
よろしくお願い致します。