12月1日(火)の【オンライン】enebular developer meetupでのLT内容を記事にしてまとめます!
イベント詳細:https://enebular.connpass.com/event/193989/
はじめに
自己紹介
仲条高幸(なかじょうたかゆき)こと湯婆婆に名を取られた条(ジョー)です!enebularで湯婆婆を実装してみる
Twitterもやっています!@njn0te
TSfCMという社会問題をテクノロジーで解決するスクールを運営していたり、株式会社Panta Rheiを2020年10月末に創業したり、フリーランス的に地方創生などに携わったりしています。(2021年1月に、ランサーズから「認定ランサー」を取得しました。)
Enebular歴
- 2年前に、デジタルハリウッド大学大学院という社会人スクールの授業で3ヶ月
- この度LT会に出ること&アドベントカレンダーに挑戦することになったので1ヶ月
合計Enebular学習時間はまだまだ少なく、初心者中の初心者なのですが、初心者なりに失敗したところや伝えられるところもあると思うので、そういうのも含めて暖かく読んでいただけたら嬉しいです!
タイトル
**「enebular x Twitter で 鼓舞激励の文化をつくる」**です(ジャカジャン!)
タイトルへの想い
2020年は、劇的に変わった年でした。世の中暗いニュースばかりで、その中でも最近特に衝撃だったのは、日本人の10月の自殺者数はなんと2,153人でした。日本人の今までのコロナによる死者数は2,074人(2020年12月1日現在)なので、たった一月で今までのコロナによる死者数を超えてしまってます。
特にTwitterによる誹謗中傷が見ていて辛かったし、自分自身も誹謗中傷された時にめちゃめちゃ悲しかった時があったので、この流れというか文化を変えられたら良いな、もっと優しい世界になれば良いなと思い、タイトルを**「enebular x Twitter で 鼓舞激励の文化をつくる」**にしました。
参考資料:https://edition.cnn.com/2020/11/28/asia/japan-suicide-women-covid-dst-intl-hnk/index.html
まずは、とりあえずブラウザで「エネブラー」と検索!
https://www.enebular.com/ja/
公式ページからサインインをして、右上の+ Create Project
からプロジェクトを作り、右下の+
からFlowを作り、なんじゃかんじゃで下の画面が出てきたら、いよいよスタート!
Twitterのノードを追加
右上のハンバーガーマークから「設定」を選択して、「ノードを追加」のタブに検索できそうなところがあったので、一旦一番上に出てきたノードを追加。
使ったノード(node-red-node-twitter)の詳細:https://flows.nodered.org/node/node-red-node-twitter
「ノードを追加」を押して「追加しました」に変わると、最初の画面の左側に、新しく「Twitter in」と「Twitter out」が追加されています! それっぽいこの2つを、今回は使っていきます。
色々とIDやらAPI認証やらを追加しないと動かなそうなので、上の写真の右側に書かれてる1~3の順番にやっていきますぜ!(ジャカジャン)
1.次のURLから自身のアプリケーションを作成 https://developer.twitter.com/en/apps
APIを使うために、英語で色々と質問に答えなくてはいけなくて、めんどくさかったので、私は「twitter ディベロッパー 質問 回答」みたいな感じで検索して、コピペしました(ここだけの内緒で!)
例文の書いてある記事の例:https://digitalnavi.net/internet/3072/
2.'Keys and tokens'セクションからConsumer APIキーをコピー
ドキュメントに、それっぽいことが書いてあるページがあったので、それ通りにやってみますぜい!
3. 新たに'Access token & access token secret'を作成し、コピー
最後に、新しく作ったProjectsの中のKeys and tokens
の中にあるAccess Token & Secret
を「Generate」して、その発行された文字列をEnebularに貼り付ける感じです。
鼓舞激励している投稿よ、集まれ!
ここまで結構ややこしいけど、成功したときに緑色にピコンってなって、自動でツイートしてくれたり特定のツイートを取得してくれたりするんで、「っしゃ!」って感じを味わえます。
ギバーズコミュニティという、友人の会社が運営しているコミュニティがあり、そこで使われているハッシュタグ「#ギバコミ」の付いたツイートを取得して、社内チャットツール(Talknote)に飛ばすようにしました。
※上の画像の真ん中辺りにあるオレンジ色のFunctionノードには、メールを送るためにメッセージを加工したかったので、下記の3行だけコードを書いてます。(本当は全部ノンプログラミングでやりたかったのですが、ここだけ許して!)
msg.topic = `${msg.tweet.user.name}さんからTwitterで投稿がありました。`
msg.payload = `「${msg.payload}」\nhttps://twitter.com/${msg.tweet.user.screen_name}/status/${msg.tweet.id_str}`
return msg;
実際にTwitterにハッシュタグ「#ギバコミ」をつけて投稿すると、下の画像のようにTalknoteに通知がいくように実装が完成しました。引用リツイートでもちゃんと通知がいってるのも良い感じです!
しかし! 1時間という制限があったので、デスクトップアプリの「エネブラー」を使用(問題点①)
ブラウザでEnebularを使っていると気づくのですが、1時間でセッションが切れてしまい、Twitterの投稿が切れてしまいます。
※右上のデプロイの隣にあるℹ️のボタンを押すと、残り何分でセッションが切れるか書かれています。
なので、デスクトップアプリを使うことにしました。
すると、先ほど入れたTwitterノードがunknownになっていました。。。
▼ドキュメントを確認すると
Install
Run the following command in your Node-RED user directory - typically ~/.node-red
npm install node-red-node-twitter
となっていたので、ターミナル(windowsだとコマンドプロンプト)でインストールすると、無事に表示されました!
ちゃんと緑色の「ピコン」も出ていて、ちゃんと通知も届いたので良い感じ♪
と思いきや! アプリを起動していないとツイートされないのでHerokuで「エネブラー」をデプロイ!(問題点②)
デスクトップのアプリなので、パソコンを開いていて、かつアプリを起動していないと、自動でツイートを取得してくれません(泣)
調べてみると「Herokuを使うと解決できる!」という記事があったので、Enebularのアプリにも「デプロイ」というボタンがあり、コネクション作成からHerokuを選択できたので、HerokuのページでCreate New App
のボタンからアプリを作り、挑戦!
「デプロイが完了しました」と表示され、(余裕♪)と思っていたのですが、動かない。なぜ??
Enebularの公式ページを読むと、ブラウザでやってる。
Herokuデプロイ解説記事:https://docs.enebular.com/ja/deploy/deployflow/heroku/
とても丁寧に解説されていました。順番にやっていくと、下のような画面に!
先ほどのアプリ用とは別でHerokuのページでCreate New App
のボタンからアプリを作り、再挑戦!
無事に動きました!!(めでたしめでたし)
まとめ
-
HerokuとEnebularの掛け合わせが一番良さそう。
-
最初大変だったけど、一度作ったから、楽しい(ノンプログラミングって素敵!)
-
Twitterでどんどん鼓舞激励の文化広めてくぞ!