hug-luma-hitcnico / line_send_from_kintone_test

GNU General Public License v3.0
0 stars 0 forks source link

kintoneからポップアップしたウィンドウからLINEメッセージを送付するサンプル実装 #1

Open morishu1108 opened 2 months ago

morishu1108 commented 2 months ago

既存コードをもとにkintoneからポップアップしたウィンドウから、LINEメッセージを送付できるようにしてみる。

■kintoneアプリ https://hug-luma.cybozu.com/k/569/ ■公式LINEアカウント https://manager.line.biz/account/@069ldhli

その後必要になってくること

morishu1108 commented 2 months ago

@hug-luma-hitcnico ひとまず、このIssueに書いたことを実験しつつ、仕様も考えないといかないかなというところになります〜

hug-luma-hitcnico commented 2 months ago

ベースの資料 https://ht79.info/npo-activity/npo-line-kintone/

hug-luma-hitcnico commented 2 months ago

・トーク履歴を初期でどこまで読み込ませるか(だいたい100くらい?) ・もっと見る的なことはいったん置いておく ・スタンプのkintone格納は二の次。ビジネスユースで基本的にはテキストの格納。スタンプは公式アカウントの管理画面で見ること。

hug-luma-hitcnico commented 2 months ago

makeのfilterで、複数条件に合致しないものを判定させるときに使う「Does not match pattern」 https://community.make.com/t/how-do-you-create-a-not-in-filter/20704/4

hug-luma-hitcnico commented 2 months ago

添付ファイルの投稿があった場合に、画像・動画を取得できるようにした(最後のデコードができてない) https://us1.make.com/471509/scenarios/2550719/edit

hug-luma-hitcnico commented 2 months ago

makeでbase64でエンコードするための参考資料(コミュニティ) https://community.make.com/t/pass-jotform-image-base64-data-to-google-drive/26748 https://community.make.com/t/convert-file-to-base64-noob-question/13774/7

hug-luma-hitcnico commented 2 months ago

スクリーンショット 2024-08-27 18 41 35

ChatGPTから、スペースフィールドを関連レコードに表示させるためのスクリプト。 未検証。

hug-luma-hitcnico commented 2 months ago

もう少し解像度上げた感じ。

(function() { 'use strict';

kintone.events.on('app.record.detail.show', function(event) {
    var appId = 571;  // 関連レコード一覧で参照するアプリID
    var lineUserId = event.record.LINEユーザーID.value;  // 現在のレコードのLINEユーザーID
    var spaceElement = kintone.app.record.getSpaceElement('display');  // 表示するスペースフィールドのコード

    // kintone APIで関連レコードを取得
    var body = {
        app: appId,
        query: 'sender = "' + lineUserId + '"',  // senderフィールドがLINEユーザーIDに一致するレコードを取得
        fields: ['作成日時', '送受信', 'sticker']
    };

    // レコード取得処理
    kintone.api(kintone.api.url('/k/v1/records', true), 'GET', body).then(function(resp) {
        if (resp.records.length > 0) {
            var html = '<table border="1"><tr><th>作成日時</th><th>送受信</th><th>sticker</th></tr>';

            resp.records.forEach(function(record) {
                html += '<tr>';
                html += '<td>' + record['作成日時'].value + '</td>';
                html += '<td>' + record['送受信'].value + '</td>';
                html += '<td>' + record['sticker'].value + '</td>';
                html += '</tr>';
            });

            html += '</table>';
            spaceElement.innerHTML = html;
        } else {
            spaceElement.innerHTML = '関連レコードがありません。';
        }
    }).catch(function(error) {
        console.error(error);
        spaceElement.innerHTML = '関連レコードの取得に失敗しました。';
    });
});

})();