新規投稿
フォローする

「new KintoneRestAPIClient({ guestSpaceId })」のguestSpaceIdサポートを要望したい

kintoneのプラグインを開発する時、KintoneRestAPIClientオブジェクトを取得するのが慣用句のようですが、ゲストスペース内でも動作するようにするためには、「window.location.pathnameを参照してゲストスペースIDを取得して、KintoneRestAPIClientのコンストラクタに渡す」という処置も必要なようです。

ところが、先人が作られた便利なkintoneプラグインの中には、引数無でKintoneRestAPIClientのコンストラクタを呼びだしているだけのプラグインが在ります。 偶々 ソースコードも公開されている便利なプラグインの作者の方に後段のコード片をpull requestしてはみたのですが、一向にmeargeしていただけません。

master-maintenance1-peer-connect/custom-reference-table (github.com)

 

そこで、エンドユーザ側で開発されたkintoneプラグインのコードを改修しなくてもゲストスペース配下で動作するよう、Kintone rest clientのAPIの一つであるKintoneRestAPIClientコンストラクタの仕様を「その時点で動作している環境で使用可能なKintoneRestAPIClientオブジェクトを返すものとする。 そのために、ゲストスペース配下でKintoneRestAPIClientコンストラクタが呼ばれた場合は、guestSpaceIdプロパティの初期値を 当該環境のゲストスペースIDとする」という風な仕様変更依頼をしたくなりました。

さて、どのように仕様改善をする方策があるか? 教示いただけませんでしょうか?

------------------------------------------

  • ゲストスペースIDを取得してKintoneRestAPIClientオブジェクトを生成するコード片
let guestSpaceId;
  {
    if (window.location.pathname.startsWith('/k/guest/')) {
      guestSpaceId = window.location.pathname.slice('/k/guest/'.length, window.location.pathname.indexOf('/', '/k/guest/'.length))
    }
  }
  const kintoneRestAPIClient = new KintoneRestAPIClient({ guestSpaceId });
  Promise.all([
    kintoneRestAPIClient.app.getFormFields({
      app: appId,
      preview: true
    }),
    kintoneRestAPIClient.app.getFormLayout({
      app: appId,
      preview: true
    }),
  ]).then(([{ properties }, { layout }]) => {
  後略
0

0件のコメント

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