Google Chatでの発言をkintoneのスレッドに投げてくれるbotをGoogle Apps Scriptで作りました。
kintoneのスレッドってPCなら割とイケますが、スマフォだと結構しょっぱいので、他のチャットインターフェースがあるなら、そっちからメモできたら楽じゃん!ってので作りました。
あとは、kintoneでセキュアアクセスの設定してると、ログインが面倒なので、データの登録だけなら他のインターフェースからしたいなーとかそんなニーズにも対応してると思います。
// スレッドはAPIで更新ができないので、ユーザー名とパスワードを使う var user = "ユーザー名"; var pass = "パスワード"; // Basic認証を実施している場合は、 var userBasic = "Basic認証ログイン名" var basicPass = "Basic認証パスワード"; // スレッドのAPI var threadApi = "https://{{サブドメイン}}.cybozu.com/k/v1/space/thread/comment.json"; // Google Chatのbotにメンションを飛ばすと、このファンクションが走ります。 function onMessage(event) { // eventからメンションした発言を取り出します。 var message = event.message.text; // 認証ヘッダーを作成 // 通常ログイン var encoded = calcBase64(user + ":" + pass); // Basic認証用 var encodedBasic = calcBase64(userBasic + ":" + pass); // この辺のヘッダーはお作法です var headers = { "X-Cybozu-Authorization" : encoded, "Authorization" : "Basic " + encodedBasic, "Content-Type" : "application/json" } // body部分のJSONを作ります // spaceにはスペースIDを、threadにはスレッドIDを設定します var payload = { "space" : spaceid, "thread" : threadid, "comment" : { "text" : message } } var options = { "method" : "POST", "headers" : headers, "payload" : JSON.stringify(payload) , "muteHttpExceptions" : true }; // botに話しかけた内容をスレッドに登録! var response = UrlFetchApp.fetch(threadApi, options); // return { text: "返事" } で返すと、Google Chatに返事をしてくれます。 // 適当に登録したことが分かるような文章を返しましょう。 return {text: "「" + message + "」て登録したったで!"}; } // 認証ヘッダー用にBase64エンコードをかけるファンクション function calcBase64(str) { var blob = Utilities.newBlob(str); var encoded = Utilities.base64Encode(blob.getBytes()); return encoded; }
kintoneのご相談お受けしております!