カテゴリー内の他の記事

kintone.apiにゲストスペースでも使える正しいパスを指定する

フォローする

(著者:サイボウズ 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月版で確認したものになります。

記事に関するフィードバック

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

Avatar
佐藤

kintone.api.url を使って、

kintone.api(kintone.api.url('/k/v1/app/customize', true), 'GET', body, function(resp) {

のようにしても、

「ゲストスペース内のアプリを操作する場合は、リクエストの送信先を「/k/guest/(ゲストスペースのID)/v1/...」にします」

というエラーになってしまいます・・・

 
Avatar
cybozu Developer team

佐藤 様

お世話になっております。
cybozu developer network 運営事務局です。

ご質問いただいた件についてですが、
書いてくださったコードのパスの部分('/k/v1/app/customize')に誤りがあるかと思われます。

こちらを記事の本文に書かれている「/k/v1/records」のまま書いていただいて、
再度お試しいただけますでしょうか。

よろしくお願い致します。

ログインしてコメントを残してください。