個人秘書Riho開発日記4 - Slack投稿APIのエラーを修正した

f:id:stkn_bb:20170528162630p:plain

Slack投稿APIが404になっていたのをやっと直した。

今までGETでAPIを投げていたがPOSTのみになったらしい。

まぁ普通に考えてメッセージ投稿がGETリクエストなのはおかしいよね。

修正後のメッセージ送信部のソースコード

function newPostMessage() {
  var token = "YOUR_API_TOKEN";
  var channel = "random"; //投稿先チャンネル名
  var username = "Riho"; //BOTの名前
  var text = "hello" //メッセージ
  var icon_url = "吉岡里帆ちゃんのいい感じの写真URL" // アイコン
  
  // POSTデータ
  var payload = {
    "token": token,
    "channel": channel,
    "username": username,
    "text": text,
    "icon_url": icon_url
  }
  // POSTオプション
  var options = {
    "method" : "POST",
    "payload" : payload
  }

  // アクセス先
  var url = "https://slack.com/api/chat.postMessage"
  // POSTリクエスト
  var response = UrlFetchApp.fetch(url, options);
  // HTML結果を取得(引数のcharsetは設定したほうが良い)
  var content = response.getContentText("UTF-8");
}

このサイトを参考にしました。
- GoogleスプレッドシートでGET/POST通信を行いコンテンツを取得する - Webサービスで起業を目指すプログラマーblog

1ヶ月くらい404になってたのを放置していたのでやっと直せてよかった。

f:id:stkn_bb:20170805153357j:plain

個人秘書Riho開発日記3 - RSSで記事を取得してSlackに送信してみた

f:id:stkn_bb:20170528162630p:plain

前回、GASとスプレッドシート、Slackの連携をした。

satoken.hateblo.jp

今回は、RSSで記事を取得して、Slackに流すBOTの作成をしようと思う。

参考のURLを参考にした。

コードはほぼ上記のサイトのものを利用。
一部フィルターが上手く動いていないところがあったので修正。
あとはスプレッドシートに記事を記載しているところをSlackに送信するようにした。

f:id:stkn_bb:20170624214728p:plain

これで吉岡里帆ちゃんのブログを見逃すことがなくなった(更新頻度低)

あとは大好きな欅坂46の小池美波ちゃんをはじめ、上村莉菜ちゃん、佐藤詩織ちゃん、長沢くんのブログも登録。

f:id:stkn_bb:20170624215046p:plain

(好きな子に別の好きな子の情報を取ってきてもらう背徳感)

f:id:stkn_bb:20170624215152p:plain

こんな感じにスプレッドシートに登録した。

4列目でSlackのチャンネルを指定することで、欅は欅坂46チャンネル、吉岡里帆吉岡里帆チャンネルに流れるようにした。(日本語のチャンネル名初めて使った)

あとは適当にテック系のサイトも登録しておこうと思う。

Google Apps Scriptで15分おきに実行するように指定したので勝手に取ってきてくれて便利。

f:id:stkn_bb:20170624220051j:plain

個人秘書Riho開発日記2 - スプレッドシートにメモしてみた

f:id:stkn_bb:20170528162630p:plain

前回、SlackとGoogleAppsScriptで簡単なbotを作成した。

satoken.hateblo.jp

今日は #memo チャンネルに追加されたメモをスプレッドシートに残したいと思う。

参考のURLを参考にした。

コードはこんな感じ。

function doPost(e) { // Slack WebHooks
  if (e.parameter.user_id != "U5JRB0AM9") {
    return
  }
    
  var sheet = SpreadsheetApp.openById("SPREAD_SHEET_ID")
  sheet.getSheetByName("memo").appendRow(
    ["", new Date(), e.parameter.text]
  );
    
  var token = "SLACK_TOKEN";
  var channel = "memo"; // 投稿先チャンネル名
  var username = "Riho"; // BOTの名前
  var text = "メモしたよ。"; // メッセージ
  var icon_url = "吉岡里帆ちゃんのいい感じの写真URL" // アイコン
  UrlFetchApp.fetch("https://slack.com/api/chat.postMessage?token=" + token + "&channel=%23" + channel + "&username=" + username + "&text=" + text + "&icon_url=" + icon_url);
}

※2017/8/5追記 投稿APIがGETリクエストで通らなくなったのでPOSTに変更しました。詳しくは下記の記事で。
個人秘書Riho開発日記4 - Slack投稿APIのエラーを修正した - さとろぐ

工夫した点として、
2行目に発言者のIDを判定し、自分のID以外の場合は return するようにした。
メモをする度にトリガーキーワードの riho: や @riho などを記載するのがめんどくさいからだ。
これをやっておくとトリガーキーワード無しで設定してもbot自身の発言を拾って無限ループに陥ることがなくなる。

やらないとこうなる↓

f:id:stkn_bb:20170611211707p:plain

もしくは↓

f:id:stkn_bb:20170611211935p:plain

んで、肝心の動作はこんな感じ

f:id:stkn_bb:20170611211700p:plain

f:id:stkn_bb:20170611211657p:plain

おおおおおおお!

んで、スプレッドシートを整形しておくとこうなる

f:id:stkn_bb:20170611211704p:plain

(とりあえず1行空けたいタイプなのでソースコード8行目の配列の一番最初に空文字が入ってます)

これを応用して、支払った金額を入力すると今月の残り予算を返してくれるような家計簿botを作成したいと思う。

f:id:stkn_bb:20170611213306j:plain

個人秘書Riho開発日記1 - GASとSlackを連携してみた

f:id:stkn_bb:20170528162630p:plain

やるやる詐欺していたSlackのBOT作りをまったりとはじめた。

個人的な課題として、

  • 気になるサイトを毎日チェックするようにしたい
  • 日記をつけるようにしたい
  • メモを取る癖をつけたい

といったことがあるので、それをサポートするような機能をつけていく予定。

んで、自分でサーバーを立てて管理するのもだるいのでGoogle Apps Script(GAS)で実装する。

Riho?大好きな吉岡里帆ちゃんだよ。 f:id:stkn_bb:20170528163620p:plain

どれくらい吉岡里帆ちゃんが好きかと言うと、
CMを見ていて「誰この子かわいい」って思う子はみんな吉岡里帆ちゃんってくらい好き。
※何故か顔が覚えられない

どんぎつね

f:id:stkn_bb:20170528170403j:plain

ZOZO

f:id:stkn_bb:20170528170420j:plain

UR賃貸

f:id:stkn_bb:20170528170438j:plain

ゼクシィ

f:id:stkn_bb:20170528170452j:plain

綾鷹

f:id:stkn_bb:20170528170532j:plain

口内炎

f:id:stkn_bb:20170528170550j:plain

かわいい。

実装は以下のURLを参考にした。

コードはこんな感じ

function doPost(e) { // Slack WebHooks
  var token = "SLACK_TOKEN";
  var channel = "random"; // 投稿先チャンネル名
  var username = "Riho"; // BOTの名前
  var text = "Rihoですよ!" // メッセージ
  var icon_url = "吉岡里帆ちゃんのいい感じの写真URL" // アイコン
  UrlFetchApp.fetch("https://slack.com/api/chat.postMessage?token=" + token + "&channel=%23" + channel + "&username=" + username + "&text=" + text + "&icon_url=" + icon_url);
}

※2017/8/5追記 投稿APIがGETリクエストで通らなくなったのでPOSTに変更しました。詳しくは下記の記事で。
個人秘書Riho開発日記4 - Slack投稿APIのエラーを修正した - さとろぐ

「riho:」って声をかけると「Rihoですよ!」って返してくれるようになった。かわいい。

f:id:stkn_bb:20170528170014p:plain

トリガーキーワードの指定を「riho:」ではなく「riho」にしたら無限ループに入ってメンヘラっぽくなったのはここだけの話だ。

f:id:stkn_bb:20170528170248p:plain

あとはGASのコードを更新した後に
公開>ウェブアプリケーションとして導入>プロジェクトバージョンを新規作成して更新
しないと新しいコードが反映されないところはハマりポイントだった。

やったことは、

  1. Slackの部屋を作成
  2. Slackのtoken発行
  3. GASのスクリプト用意
  4. SlackのWebhook設定
  5. 吉岡里帆ちゃんの画像検索

だけなので技術的な説明は上記リンクに譲る。

まったりとRihoを育てていきます。

f:id:stkn_bb:20170528172453j:plain

YouTuberになった日

f:id:stkn_bb:20161011233555p:plain

ゆーちゅーばーになりました。

一週間動画上げ続けられたらブログ書くぞ!って気合い入れて毎日動画をアップロードしていたら今日の動画で10本目になりました。

偉い。

YouTubeのリンクはこちら。

www.youtube.com

コンテンツは自分がプレイするFIFA17のゲーム実況です。

コンテンツにするならゲームしてもいいよね!っていう自分への言い訳だったりもします。

そもそもどうしてYouTuber始めたかというと、 今、こんなにYouTuberが出てきて、若者がYouTube見ているのも知っているのに動画をアップロードしたことないって純粋にダサいなって思ったんですよね。

それでやってみたら色んなことがわかる。

  • 毎日録画して動画編集してアップロードするのって超大変
  • アップロードしてもなかなか再生数は増えない
  • チャンネル登録とコメントが付くと嬉しくてテンションが上がる
  • てか俺ってこんなに聞き取りづらい喋り方してるんだ…

などなど

まぁ再生数は増えないと書いたけど想像していたよりは再生されてる(笑)
最初は自分だけかなって思っていたけど案外再生されてる。どこから動画見つけたんだろう。。

10月中に累計1000再生目指してます。

実は今まで、コンテンツを作り続けた経験ってないんですよね。
Twitterくらい?w

それなのにコンテンツプラットフォームを作ろうとしてアプリ作ったりしていたのね。
けどどうしてもうまく行かなかったので一度コンテンツを作り続ける経験をしようと思っています。

まぁ真面目っぽいこと書いているけどそれ以上に楽しいので続いている感はありますねw

どうしたら番組として面白くなるかを考えながら編集してる時間は新鮮。
iMovieも初めて使うので新鮮。

まぁゆったりと趣味としてゲーム実況をやっていこうと思っていますw

www.youtube.com

#Bリーグ に初参戦してきた

f:id:stkn_bb:20161008224709j:plain

今気づいた。試合に熱中しすぎて試合中の写真撮ってなかった。

今日は愛知県体育館にBリーグ名古屋ダイヤモンドドルフィンズ大阪エヴェッサの試合を観に行ってきました。

体育館に着くなりこんな雰囲気。

#Bリーグ 観に行ってきた!名古屋ドルフィンズも勝ったしよかった。盛り上がりすごくてめっちゃ楽しめたよ

クラブかよ!

いや、本当にエンターテイメント性高くて雰囲気めちゃくちゃ良かったです。

この動画は試合開始のタイミング。

試合中はこんな感じ

デンデンデデンドンみたいな音楽とDJさんね。これは楽しい。

席は二階席だったんだけど結構近くて臨場感がすごかったです。

特に外国人選手同士がガツガツやりあってる姿は迫力がありました。

そんな中で一番目がいったのが名古屋ドルフィンズの背番号21の笹山選手。

3ポイントシュートがんがん決めててかっこいいなーと思ってたら今日のMVPに選ばれてた。

f:id:stkn_bb:20161008230614j:plain

写真画質悪いw

Bリーグがこれからかなり熱いんじゃないかな。

本当に楽しかった。

バスケやりてぇぇぇ!!!

以下おまけ。

f:id:stkn_bb:20161008231214p:plain

Bリーグはスマホチケットが使えるんね。

で、この画面見せたら係の人がハンコみたいなのを画面に押してくれたら実際に画面にも印字されたの。

なにこれ、すごすぎるし、どうやって実現してるのかわからない。

Bluetoothじゃないだろうし…

タップのパターンとか?

って思ったけどモスキート音かもしれないね。

今思い付いた。

f:id:stkn_bb:20161008231709j:plain

普段しない自撮りしたらブレた

(Tシャツ買った。運動のときに着やすい生地だからたくさん着よう

f:id:stkn_bb:20161008231844j:plain

なんかいた

【20年越しの夢が叶った】ポケモンGOを一日やってみて雑感

f:id:stkn_bb:20160722234806j:plain

ポケモンGOリリースされましたね!

アメリカでリリースされてから話題が尽きないポケモンGOですが、とうとう日本でもリリースされました。
一日ざっくりと遊んでみた雑感をまとめておきたいと思います。

街にはコラッタ、水辺にはコダック、公園にはポッポ

歩いている場所によって出現するポケモンが変わるのが面白いですね。
僕は水ポケモンが好きなので川の近くを歩いていると楽しいです。
コダックコイキングニョロモトサキント
公園にはポッポって書いたけどポッポはわりかしどこにでもいるか。

あっちにいったらどんなポケモンがいるかな?こっちはどうかな?って思いながら歩いているだけで楽しいです。
ポケモンが出てくるとブブッってスマホが振動するのがよりテンションを上げさせますね。

贅沢だけど地域性がもっと出たら楽しいのになぁ。
ポケモン金銀のキャラクターが追加されるときには名古屋でしか出現しないポケモンとか大阪でしか出現しないポケモンとか分けられてくると面白いですね。
都市部、田舎でも変わったら面白いなぁ。色々なところに行きたくなる。

あっちにもトレーナー、こっちにもトレーナー

もうね、みんなポケモンGOやってるのがわかるんですよね。
ランチがてらに公園に行ったらサラリーマンをはじめ、外国人や学生までみんなポケモンGOやってる。
本当にすごいなぁと。

まぁ名古屋だからたくさんいるんだろうなと思って地元に帰ってきてふらふらとポケ活(今作った言葉:ポケモン活動)してたら地元にもいるんですよ、ポケモントレーナーが。
みんなポケ活(2度目)してる。
そんなに大きな駅でもないのですが、駅がジムになっててかなり攻防戦が繰り広げられています。
さらに驚いたのは母親までポケモンGOを始めたって言ってたんですよね。なんだよ社会現象かよ。。

こんなに急速に広がっているサービス見るのは初めてです。LINEより圧倒的に早いよね。。

なんだかんだポケ活中に3,4組と話をしましたね。
トレーナーはみんな仲間だよ。「何色ですか?赤ですか。敵ですね。」って言ったけど仲間だよ。

友達と同じ色にして徘徊すると楽しいんじゃないかな

ポケ活にしろ何にしろ僕はお一人様が多いんですけど、友達とダラダラ徘徊してると楽しいんじゃないかなと思います。
同じ色の人といることで一緒に敵のジムを攻め立てることができますし、仲間のジムをより早くレベルアップすることもできます。
仲間のジムをレベルアップすることでジムに置けるポケモンが増えるのでなかなか落とされないジムになります。
陣取り合戦面白いなぁ。なんでIngressハマらなかったんだろう。

もちろんポケ活中に仲間を見つけて一緒に回ってもいいと思いますけどね。
だらだらポケモンの話でもしながらポケストップ回してジム攻撃してって知らない人とでも楽しめるかなと。

しかし違う色の人とだと相性が悪いですね。
ジム見つける度に喧嘩になりますよ、きっと。

ポケモンGOのブームはいつまで続くだろうか

そのうちの流れとして確実にガチ勢がジムを固め始めると思うんですよね。
そうなるとライトユーザーはポケモンを集めることしか楽しめなくなります。まぁそれでも楽しいんだけどさ。
ガチ勢の圧倒的に強いポケモンが配置されてたら戦おうという気にもならないのでどこまでモチベーションを保てるかが鍵かなと。

それとバッテリーの減りが本当に早いので予備バッテリー持ち運ばない層には「充電減るからやめる」って人はかなりいるだろうなと思います。
僕も正直iPhoneしか所持してなかったら厳しいです。普段からゲームしなくても3,4時間しか充電持たないのに。。(現在はAndroidの端末でプレイしています)
それでも予備バッテリーを持ち運ぶ人はポケモンGOによってかなり増えるんじゃないかなと思っています。バッテリー持ち歩いてまでやりたいと思いますもん。

ポケモンGOは20年越しの夢を叶えてくれた

ポケモン赤・緑が発売されたのって20年も前なんですって。
僕が小学生になる1年前ですね。ポケモン世代として育っているので今回のポケモンGOはかなり胸が熱くなりますね。

僕はずっとゼニガメが好きで今回もゼニガメを選んだんですけど、小学生の頃からゼニガメと一緒に旅ができたらどれだけ楽しいだろうかって考えてたくらいゼニガメが好きだったんですよ。

それが20年後の今日その夢が叶ったんですよね。
スマホを通してそこには大好きなゼニガメがいるんですよ。すごくない?
弱すぎて戦闘で使ってないけど。

テクノロジーは人の夢を叶えるよね。

俺も人の夢を叶えるサービスが作りたいよ。

ただ、ゼニガメへの想いが強すぎて孵化した卵からもゼニガメ生まれてきたけどな。
そこまで求めていないというか、ゼニガメは1匹いればいいし、どうせならヒトカゲとかフシギダネとか。。ピカチュウでもよかったよ…??

f:id:stkn_bb:20160723005456j:plain

まとめ

そんなこんなでかなり楽しんでます、ポケモンGO
もうちょっと色々とハマってみてみようと思います。

将来的にはポケモンマスターっていう職業が成立したら面白いなって思っているのでそんなことも考えながら遊んでます。

僕は青チームなので名古屋の青チームの人、一緒に遊びましょ!

余談

僕が個人で運営している「DIG BASEBALL」という野球ニュースアプリがあります。それの姉妹アプリ「DIG Pokemon GO」を開発しているんですがリリースに間に合いませんでしたw
野球の方も合わせて新機能を作っていて、月末には間に合いそうなのに。。と思っている次第です。
まぁ出したら告知しますが、間に合わなかったのでポケモンGO版は出さないかもしれません。どうかな。出すかな。

DIG BASEBALLのダウンロードリンクはiPhoneアプリのみですが、こちら↓です。野球ファンの人はダウンロードしてみてくださいね。

それでは、良いポケモンライフを!