Node-REDでTwitterにメッセージを投稿しよう

# Node-REDで遊んだ with Twitter
## はじめに
みなさんこんにちは。
FUN Advent Calendarも6日目に入りました。
多分見に来るのはFACの方々でしょうが、外部からの閲覧者のためにURL置いときますね(雑)
http://www.adventar.org/calendars/1350

題名の通り、今日はNode-REDを使ってTwitterで遊ぶという内容です。
初心者向けの内容ですので、コーディング経験のない人も気軽にやってみてください。
プログラミング経験が豊富で、Node-REDを触ったことがあるのであれば、ここは来るべきじゃないのでとっととGo Awayして、どうぞ。

RPiのひとはNode-REDが標準インストールされてるので準備は飛ばしましょう。

### 目次
- Node-REDを準備する
- プログラミングしてみる
- コラム検証は大事

## Node-REDの準備をする
### インストールくらい自分で出来る人
この辺はお話しすることがないのでとりあえずここ見てインストール頑張ってください

Node-RED日本ユーザ会HP
https://nodered.jp/docs/getting-started/installation.html

### 一人でインストールできませんって人
#### まずはnode.jsをインストールしましょう。
macの人ばbrewからやっちゃいましょう。
```brew install node.js```

mac以外の人はここからDLしてインストールしてね
https://nodejs.org/en/

#### 次はNode-jsのインストール
ターミナルソフトでこのコマンドを打ちましょう。魔法の言葉です。
(ぶっちゃけmacとRPiでしか動かしたことないのでWindowsなにそれおいしいの状態)
```sudo npm install -g --unsafe-perm node-red```

#### 確認作業
これでインストール作業はおしまいです。
ターミナルソフトで```node-red```と入力して、welcome to Node-REDとでたら成功です。

## プログラミング(笑)してみる
下準備お疲れ様でした。これであなたもNode-REDerの一員ですね。
ここからはプログラミングの項になりますが、ぶっちゃけプログラミングもクソもありません。
ただ伸ばして繋ぐだけです。

### Twitterに固定文を投稿する。
ではさっそく、Twitterとイチャイチャしましょう。
はじめに、ターミナルソフトで
```node-red```
と入力し、Node-REDを起動させましょう。
Welcomeなんちゃらと出たら正常に動いてるはずです。

次に、WebブラウザのURL入力に
```localhost:1880```
と入力してください。
![スクリーンショット 2016-12-05 11.55.42.png](https://qiita-image-store.s3.amazonaws.com/0/152142/5e638ca4-c40b-e2d0-7b3f-94b8ad6dd48a.png)


こんな感じの画面が出たら成功です。

左のサイドバーに各機能を持ったboxが配置されており、それをペタペタ貼ったりつなげたりしてプログラミングを行います(スクラッチ？なにそれおいしいの？)

適当に[inject]と[Twitter]の左側に点がついているboxの二つを出しましょう。
![スクリーンショット 2016-12-05 11.58.29.png](https://qiita-image-store.s3.amazonaws.com/0/152142/7f809c9c-a391-3e62-d100-084eb162b57a.png)
左に点がついているものと右に点がついているものの違いは、所謂インプットかアウトプットかの違いです。
右がアプトプット、左がインプットと覚えてください。(覚えなくてもわかるだろうけど)


出した[inject]boxをダブルクリックすると以下の画像のような表示が出てくるので、画像に沿って設定しましょう。
![スクリーンショット 2016-12-05 12.04.28.png](https://qiita-image-store.s3.amazonaws.com/0/152142/c63f5a8b-f4d5-9da3-da55-af1a523cb709.png)
Payloadは所謂送信するメッセージで、Twitterに投稿される内容はこれになります。
Topicはまぁトピックです。ご自由にどうぞ。
Repeatもそのままで、一度送信したものを感覚を空けて再送する設定です。
NameはNode-RED上に表示されるboxの名前になります。分かり易ければなんでもいいです。

設定が終わったら上のDoneボタンを押しましょう。
![スクリーンショット 2016-12-05 12.40.16.png](https://qiita-image-store.s3.amazonaws.com/0/152142/86164afc-8538-51cb-3565-9914adfeb1bc.png)
はい、ちゃんと反映されましたね？

次に[Twitter]boxをダブルクリックしてください。
![スクリーンショット 2016-12-05 12.41.50.png](https://qiita-image-store.s3.amazonaws.com/0/152142/32dbde67-8975-64c9-5ad2-4a23565cf5a8.png)
こんなのが出てくるので、ペンボタンをクリックしてアカウント認証しちゃいましょう。

認証が終わったらプルダウンボックスでアカウントを設定してDoneします。

あとはboxの点同士を結んであげれば...
![スクリーンショット 2016-12-05 12.44.24.png](https://qiita-image-store.s3.amazonaws.com/0/152142/ee27ca83-4b1a-c5ea-5d1b-f02347c5e32f.png)
はい、完成です。

右上のdeployを押して起動してあげます。

deploy後にメッセージの左側にあるボタンをポチると、ボックスからデータが出力され、Twitter上に表示されます。
![スクリーンショット 2016-12-05 12.54.22.png](https://qiita-image-store.s3.amazonaws.com/0/152142/fb16132d-eb6b-6694-56e5-13c5ea4468e6.png)
超簡単ですね。

## 終わりに
どうでしたか？
今回はinject機能を使った簡単なTweetを送信する(クソみたいな)Node-RED活用でしたが、簡単なのでみなさんも余裕だったかと思います。
当然ですがこれ以外にもNode-REDは様々な機能がありますので、これを機にどんどん使って見てください。
初心者向けの内容だったのでプロの方々には物足りなかったかもしれませんが、文句があるなら自分で調べろ。
FUNAdventCalendar2016はまだ始まったばかりですので、後日のコラムも楽しみにしております。
では、最後にコラムを紹介して終わりにしたいと思います。

##コラム: 検証は大事
はい、終わりにを書いた後のコラムです。
ここでは、筆者が実際に遭遇した悲しい事件について少し触れていきます。

私は先日、某大学のゴミのようなProgramを催促するためのbotをNode-REDで製作していたのですが、debugに繋ぐのを忘れてそのままdeployしてしまいました。(Node-REDのDebugBoxについては自力で調べて見てね)
するとどうでしょう。
![S__18071554.jpg](https://qiita-image-store.s3.amazonaws.com/0/152142/f829439b-f48f-abd2-9f82-39c219484646.jpeg)
そこには大量のリプライが...

慌ててサーバを(物理的に)止めましたが、被害は甚大で送られたリプの総数30Tweetとなってしまいました。

送った相手が(個人的に)問題なかったのでことなきを得ましたが、皆さんはまずリリースする前に必ずdebugを利用しましょう。

以上、私からのトピックでした。