見出し画像

【 #kintone 】コメントしたユーザーとコメントの宛先のユーザーをすべて取得するJS #カスタマイン

レコードのコメントしたユーザーとその宛先のユーザーを取得して、その後の処理に使用する必要がありました。

はじめはカスタマインのやることやWebhook経由でいろいろと取得を考えましたが、構成が煩雑になりそうだったので、カスタマインのJavascriptを実行するで取得することにしました。

調べてみるとレコードコメントを取得するというそのままのAPIがあります。
この情報をもとに作成はChatGPTくんにお願いしました。
実行すると投稿者のコードが返ってきます。

カスタマインであれば、その結果を受け取ってレコードを取得するのやることで、事前に社員マスタなどユーザーの情報を管理するアプリからユーザー情報を取得できます。

コード

async function fetchUserCodes() {
    const appId = kintone.app.getId();
    const recordId = kintone.app.record.getId();
    let offset = 0;
    const userCodes = new Set();

    while (true) {
        const params = { app: appId, record: recordId, offset: offset };
        try {
            const resp = await kintone.api(kintone.api.url('/k/v1/record/comments', true), 'GET', params);
            
            resp.comments.forEach(comment => {
                userCodes.add(comment.creator.code);
                comment.mentions.forEach(mention => {
                    if (mention.type === "USER") {
                        userCodes.add(mention.code);
                    }
                });
            });

            if (!resp.older) {
                break;
            }
            offset += 10;
        } catch (error) {
            console.error('コメントの取得に失敗しました:', error);
            return "エラーが発生しました。"; // Customineにエラー通知
        }
    }

    return Array.from(userCodes); // Customineで受け取れるように配列に変換してreturn
}

return fetchUserCodes()

Customine

コピーしてそのまま入力したらOKです。

今回は以上です。
お役に立ったら幸いです

この記事が気に入ったらサポートをしてみませんか?