新規投稿
フォローする

カスタムJavascriptでの別ユーザーでの保存について

KINTONのカスタムJavascriptでログインユーザー以外のユーザーで保存処理行いたいのですがそのようなこと可能でしょうか?

0

6件のコメント

Avatar
落合 雄一

Tohru Akuzawa様
cstapの落合です。

REST APIを用いることで可能です。
ただし、保存したいユーザーの認証情報を知っている必要があるため、実際には使えないかもしれません。

Administratorの操作として保存させたい場合のみ、APIトークンを利用することで可能です。

0
Avatar
Tohru Akuzawa

落合さま
なるほど!
APIトークンでAdminで登録することができました。
助かります。

0
Avatar
Tohru Akuzawa

すいません勘違いしていました
kintone.api('/k/v1/record', 'PUT', param );
の形式でコールしたいときですがどこにとトークンいれこむのでしょうか?

0
Avatar
落合 雄一

Tohru Akuzawa様
説明が不十分で申し訳ありません。

kintone.apiを使わずに直接REST APIを使います。
できると思っていてちょっと作ってみたのですが、302が返ってきてしまうのでちょっと調査します。

参考までに下記のようなソースです。

kintone.events.on('app.record.detail.show', function(event) {
    var record = {
        app: 100,
        id: 1,
        record: {
            // record data
        }
    };

    // リクエスト作成
    var req = new XMLHttpRequest();
    req.open('PUT', 'https://subdomain.cybozu.com/k/v1/record.json');
    req.setRequestHeader('X-Cybozu-API-Token', 'BuBNIwbRRaUvr33nWXcfUZ5VhaFsJxN0xH4NPN92');
    req.setRequestHeader('Content-Type', 'application/json');
    req.onreadystatechange = function() {
        if (req.readyState === 4) {
            console.log(req.response);
        }
    };
    // 送信
    req.send(JSON.stringify(record));
});
1
Avatar
Tohru Akuzawa

落合さま
サンプルコードの記載有難うございます。
いただいたコードでKINTONのイベントハンドラではなく、
画面表示後のクリックボタンからコールすることで動作すること確認しました。

作業者には編集権限をなるべく渡したくないのですがあるタイミングで編集が必要だったのでどうしようかと思っていたのですがこれで実現できそうです。

大変助かりました、重ねてお礼申し上げます。

0
Avatar
落合 雄一

Tohru Akuzawa様
解決したようで良かったです。

クリックボタンからでしたら非同期で構わないと思いますので、XMLHttpRequestではなくkintone.proxyを利用することをお勧めいたします。

kintone.proxy(
'https://subdomain.cybozu.com/k/v1/record.json',
'PUT',
{
'X-Cybozu-API-Token': 'BuBNIwbRRaUvr33nWXcfUZ5VhaFsJxN0xH4NPN92',
'Content-Type': 'application/json'
},
data,
function(body, status, headers) {
console.log(status, JSON.parse(body));
}
);

dataについては https://developers.cybozu.com/ja/kintone-api/apprec-updateapi.html#1
のリクエストボディの構造を参照してください。

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