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を振り分けないと、エラーとなります。
吉田様宛の返信があれば解決すると思いますので、後日ソースを載せますね。