0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

kintoneエラー:ゲストスペースのURLが正しくありません

Posted at

先日、痒い所に手が届くkintoneプラグインを提供させていただいたのですが、エラーになるとのこと。
image.png

プラグインは、kintone標準の「一覧」を拡張し、絞り込み機能を追加するものです。
image.png

これは、URLのクエリ文字列で実現しています。

kintoneには、ゲストスペースと呼ばれる、取引先や協力会社など、社外の人をゲストユーザーとして招待し利用できる特別なスペースがあります。
ゲストユーザーは、ゲストスペースのデータにしか閲覧権限が無いので、ゲストスペースを跨いでのルックアップ機能が使えません。当初この可能性を疑ったのですが違いました。

ゲストスペースではURLのルールが変わるので、その考慮が必要でした。

通常のスペースの場合
https://(サブドメイン).cybozu.com/k/(アプリID)/
ゲストスペースの場合
https://(サブドメイン).cybozu.com/k/guest/(スペースID)/(アプリID)/

飛び先URLは次のようなコードで設定しています。
qにはクエリ文字列が入ります)

修正前コード
const baseURL = `https://${location.hostname}/k/${event.appId}/?view=${event.viewId}`;
location.href = q ? `${baseURL}&query=${encodeURI(q)}` : baseURL;

そこで、次のように修正することを考えましたが、スペースIDを取得するAPIは無さそうです。

// URLのパスが /k/guest/ で始まっていれば
const baseURL = location.pathname.startsWith('/k/guest/') ? ゲストスペースのURL : 通常のスペースのURL

現在のURLから、クエリ文字列のみ差し替えれば良さそうなので、location.hrefではなくlocation.searchを変更することにしました。

修正後コード
location.search = q ? `view=${event.viewId}&query=${encodeURI(q)}` : `view=${event.viewId}`;
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?