kintone APIでゲストスペース内のアプリかどうかを判定する方法

kintoneのREST APIを使って、①アプリ情報を取得した後、そのアプリIDをもとに②フィールド情報を取得しています。

 

その際に、ゲストスペースにあるアプリに対して②のAPIを実行すると、以下のエラーが発生します。

ステータス:520

エラーコード:GAIA_IL23

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

 

①のアプリ情報取得APIで取得したアプリが、ゲストスペースにあるアプリなのかを判定する方法はありませんか?

※API実行元のアプリは、ゲストスペースに所属していないアプリなので、kintone.api.url()メソッドの第二引数にtrueを渡しても通常のURLしか生成してくれません。

吉田と申します。

現状は、ゲストスペースアプリのURLの guest 文字列で判断しています。

const AppUrl = "https://123.cybozu.com/k/guest/1/2/";
if (AppUrl.search("guest") !== -1) {
console.log("Guest space App");
} else {
console.log("App");
}

今ところは問題ありませんが、仕様が変更されると厄介ですね。

皆さんはどうしているのでしょうか?

そもそもなんですが、本当に①が成功して②でエラーが出てるのでしょうか?
貼り付けてもらったエラーは、実は①の段階で出ているつてことはないですか?

①のアプリ情報取得を行う時点で、ゲストスペースIDをリクエストに載せてやる必要があるはずなので…

吉田様

回答ありがとうございます。

例のAppUrlをアプリIDをもとに取得するようなAPIをご存知でしたら教えてください。

 

赤座様

いえ、②ででます。

①も②もゲストスペースではない通常アプリで動かしていますので、①のAPIのURLはずっと通常アプリのままです。

②でフィールド情報を取るときに、ゲストスペース内のアプリかどうかを判断してリクエスト先のURLを振り分けないと、エラーとなります。

吉田様宛の返信があれば解決すると思いますので、後日ソースを載せますね。

吉田です。

kintoneの詳細画面にkintoneライクなUIを使った印刷ボタンを置いてみた

上記リンク先にコードがありますが、kintone.api.url(‘/k/v1/records’, true)

を使っています。