異常孤独独身男性にLINEがいっぱいくる裏技
こんにちは。
皆さんLINEやってますか?いまどきやっていない人のほうが珍しいと思うくらい普及してますよね。僕も一応やっていますが、半年近く個人メッセージが来ていないくらい親密な友達がいないので孤独な日々を送っています。そんな中たまーにくるLINEって嬉しくなっちゃいますよね。
なので作りました。
なんかいい感じに文章書こうと思ったけど文才がないので茶番は終わり。
LINEbotの作成
作成するbotは不定期に自動でLINEを送ってくるものになります。
作成するにあたってここらへんの記事からパクリました。
GASを用いたLINE Bot(対話型)の作り方 - Qiita
Google Apps ScriptでLINE BOTつくったら30分で動かせた件 - Qiita
今回はプリチャンへの出演も決まったアイドルタイムプリパラでお馴染みの夢川ゆいを作りました。
アニメ『キラッとプリ☆チャン』に新キャラクターが登場します!こちらの「ゆい」と「ゆいのマスコット」です✨
— アニメ「キラッとプリ☆チャン」公式アカウント (@prichan_PR) 2020年9月27日
『アイドルタイムプリパラ』のゆいは夢川ゆいでしたが、どうやら苗字が変わるといううわさ😊ユメかわいいから何かわいいになるのでしょう?
ぜひ予想してみてくださいね♡#prichan pic.twitter.com/pi6kDY5pok
ただ作っただけでは動作しないのでGoogle Apps Script(GAS)を用いて動かしていきます。
GASはスプレッドシートと連携ができるので、今回はスプレッドシートに記載した文章を送ってくる形にします。
こちらが用意した文章です。
日頃生きるモチベーションがないのでモチベーションを上げるためにモチベーションアップ株式会社のポスターから適当に抜粋しました。
文章が用意できたらGASに書いていきます。
パクったとこ
Google Apps ScriptでPushメッセージのLINE Botを作る。 - Qiita
[GAS]Gmailで、定期的(1時間ごと)にメールを送信する方法 - Qiita
以下コード
プログラマーでもなんでもないのでコードがありえん汚いですが、動けばいいって感じで書いてあります。
- function push() {
- var dayNum = new Date().getDay(); //曜日判定用の変数
- var currentHour = new Date().getHours(); //現在時間
- if(dayNum != 0 && dayNum != 6) { //土日以外
- if (currentHour > 19 && currentHour < 24) { //送信する時間を19〜24時に限定
- if(Math.floor(Math.random()*2)==1.0){//50%の確率でメッセージを送信
- //アクセストークン
- var CHANNEL_ACCESS_TOKEN = 'botのアクセストークン(めっちゃ長いやつ)';
- //自分のユーザID
- var USER_ID = 'LINEデベロッパーで表示されるやつ(LINEに登録IDではない)';
- //対象のシートを取得
- var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('モチベーションアップ株式会社');
- //ランダムでメッセージを送る
- var cell = sheet.getRange(1+Math.floor(Math.random()*19),1).getValue();
- var postData = {
- "to": USER_ID,
- "messages": [{
- "type": "text",
- "text": cell,
- }]
- };
- var url = "https://api.line.me/v2/bot/message/push";
- var headers = {
- "Content-Type": "application/json",
- 'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
- };
- var options = {
- "method": "post",
- "headers": headers,
- "payload": JSON.stringify(postData)
- };
- var response = UrlFetchApp.fetch(url, options);
- }
- }
- }else{ //土日
- if (currentHour > 9 && currentHour < 24) { //送信する時間を9〜24時に限定
- if(Math.floor(Math.random()*2)==1.0){//50%の確率でメッセージを送信
- //アクセストークン
- var CHANNEL_ACCESS_TOKEN = 'botのアクセストークン(めっちゃ長いやつ)';
- //自分のユーザID
- var USER_ID = 'LINEデベロッパーで表示されるやつ(LINEに登録IDではない)';
- //対象のシートを取得
- var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('モチベーションアップ株式会社');
- //ランダムでメッセージを送る
- var cell = sheet.getRange(1+Math.floor(Math.random()*19),1).getValue();
- var postData = {
- "to": USER_ID,
- "messages": [{
- "type": "text",
- "text": cell,
- }]
- };
- var url = "https://api.line.me/v2/bot/message/push";
- var headers = {
- "Content-Type": "application/json",
- 'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
- };
- var options = {
- "method": "post",
- "headers": headers,
- "payload": JSON.stringify(postData)
- };
- var response = UrlFetchApp.fetch(url, options);
- }
- }
- }
- setTrigger(); //次のトリガーを設置する
- }
- function setTrigger(){
- delTrigger();
- var currentTime = new Date();
- var setTime = new Date(currentTime.setMinutes(currentTime.getMinutes()+1)); //1分ごとにトリガーを設置
- //var setTime = new Date(currentTime.setHours(currentTime.getHours()+1)); //1時間ごとの場合
- //setTime.setMinutes(Math.floor(Math.random()*59)); //1時間ごとのとあわせて使う
- ScriptApp.newTrigger('push').timeBased().at(setTime).create();
- }
- function delTrigger() {
- var triggers = ScriptApp.getProjectTriggers();
- for(var i=0; i < triggers.length; i++) {
- if (triggers[i].getHandlerFunction() == "push") {
- ScriptApp.deleteTrigger(triggers[i]);
- }
- }
- }
曜日を変えたい場合は4行と39行あたりをいじる(0が日曜、1が月曜~~6が土曜)
送信する時間帯を変えたい場合は5行と40行あたりをいじる
確率を変えたい場合は6行と41行あたり
頻度を変えたい場合は78~80行あたり
文章を増やした時は15行と49行(最終行取得するやり方だと書き方が間違ってたのか知らんけど文章が偏ってたので没にしました)
ろくにテストせずに記事を投稿してるのでいろいろ不具合があったらごめんなさい。
マジで人に見せられたものではないので本職の方、こうしたほうがいいよーってアドバイスあったら教えて下さい
実際の用途は日頃、めんどくさくて後回しにしがちな掃除とか洗濯を人から言われることでやる気が起こるかなと思って作成に至りました。(人ではなくbotだが)
最後に
うまく動作するとこんな感じで送られてきます。
夢川ゆいがこんな事言うか・・・?
Humbleにて『LEGO The Lord of the Rings』が無料配布中
Humble BundleでLEGO The Lord of the Ringsが無料配布中です。
続きを読む『クラッシュ・バンディクーレーシング』HDリマスター版に期待すること
海外のゲームイベントTGA2018でクラッシュ・バンディクー レーシングのHDリマスター版が発表されましたが、私の期待することをまとめました。
続きを読む