hubot-line-message-apiをつくった

# BOT API Trial Account廃止
新しいMessaging APIが登場してしばらくたちましたが、とうとう既存のBOT API Trial Accountが廃止されます。
[Messaging API のリリースとBOT API Trial Account廃止のご案内](https://business.line.me/ja/news/20051494)

> 旧API トライアルアカウント「BOT API Trial Account」をお使いの皆さまには、新しいトライアルアカウント「Developer Trial」のご利用をお願い致します。


だそうです。
新しいトライアルアカウントは[こちら](https://business.line.me/services/bot)からどうぞ。

## 今までとは違うところ
[LINE Messaging API が BOT API から変わったところ。 - Qiita](http://qiita.com/TetsuyaImagawa/items/7517b287e68efe21c0cc)
を見ていただければ分かる通り、送受信のJSONがかわります。

## hubotでつくっとったbotはどうなるんや・・・
[hubot-line-trialを使ってhubotからlinebotに通知させてみた - Qiita](http://qiita.com/tochi_ondy/items/fb3905c09008cfacf9c9)の記事をかいた@tochi_ondyさんが作っていただいたアダプターなどが使えなくなっているので、せっかくなので自分で作ってみました。

# hubot-line-message-api
* 基本的にherokuで公開するコトを想定して作っています。これらを設定してあげてください。
    * LINE_CHANNEL_ACCESS_TOKEN
        * LINEアカウントのBasic Infomationにある`Channel Access Token`の値を設定してください。
    * HUBOT_ENDPOINT
        * defaultで/hubot/incomingになってます。
        * 自由に設定していただいて大丈夫です。
    * FIXIE_URL
        * herokuで走らす場合は必須かなと思います。
        * [Fixie](https://elements.heroku.com/addons/fixie)というアドオンを使います。
        * `$ heroku addons:create fixie:tricycle`を叩くと自動で設定されています。
        * 出力されるIPアドレスを`Server IP Whitelist`に設定してあげてください。
* Yeomanでつくると楽です
    * adapterに`line-message-api`を指定してください

ここらへんは[ググる](https://www.google.co.jp/search?q=yo+hubot+heroku)とすぐ出てくると思います。

## つかいかた

* まずダウンロード
`$ git clone https://github.com/pyonk/hubot-line-message-api.git`

* yoで作ってください
* package.jsonにローカルのものを登録します

```json:package.json
"dependencies": {
    "line-message-api": "file:./hubot-line-message-api"
}
```

## できること
今のところpushで送信は対応できておらず、返信しかできません。

* 返信
    * テキスト

    [https://devdocs.line.me/ja/#text](https://devdocs.line.me/ja/#text)

    ```coffee
    module.exports = (robot) ->
        robot.hear /^テキスト$/, (res) ->
            res.reply
                type: 'text'
                contents: ['nyaa']
    ```
    * 画像と動画
 
    [https://devdocs.line.me/ja/#image](https://devdocs.line.me/ja/#image)
    [https://devdocs.line.me/ja/#video](https://devdocs.line.me/ja/#video)

    ```coffee
    module.exports = (robot) ->
        robot.hear /^画像$/, (res) ->
            res.reply
                type:'image'# 'video'
                content: [
                    original: 'https://example.com/images/image.jpg'
                    preview: 'https://example.com/images/image.jpg'
                ]
    ```
    * ボタン

    [https://devdocs.line.me/ja/#buttons](https://devdocs.line.me/ja/#buttons)

    ```coffee
    module.exports = (robot) ->
        robot.hear /^テキスト$/, (res) ->
            res.reply
                type: 'buttons'
                altText: 'hogehoge'
                contents: [
                    image: 'https://example.com/images/image.jpg'
                    title: 'this is Buttons'
                    text: 'buttons description'
                    actions:[
                        type: 'uri'
                        label: 'Open in Browser'
                        uri: 'http://example.com/'
                    ]
                ]
    ```
    * カルーセル

    [https://devdocs.line.me/ja/#carousel](https://devdocs.line.me/ja/#carousel)

    ```coffee
    module.exports = (robot) ->
        robot.hear /^カルーセル$/, (res) ->
            res.reply
                type: 'carousel'
                altText: 'hogehoge'
                contents: [
                    image: 'https://example.com/images/image.jpg'
                    title: 'this is Buttons'
                    text: 'buttons description'
                    actions:[
                        type: 'uri'
                        label: 'Open in Browser'
                        uri: 'http://example.com/'
                    ],
                    image: 'https://example.com/images/image.jpg'
                    title: 'this is Buttons'
                    text: 'buttons description'
                    actions:[
                        type: 'uri'
                        label: 'Open in Browser'
                        uri: 'http://example.com/'
                    ]...
                ]
    ```
    * くみあわせ

    ```coffee
    module.exports = (robot) ->
        robot.hear /^くみあわせ$/, (res) ->
            res.reply {
                type: 'text'
                contents: ['nyaa']
            },
            {
                type: 'buttons'
                contents: [
                    image: 'https://example.com/images/image.jpg'
                    title: 'this is Buttons'
                    text: 'buttons description'
                    actions: [
                        type: 'uri'
                        label: 'Open in Browser'
                        uri: 'http://example.com/'
                    ]
                ]
            }
    ```

# 注意点
* `contents.length <= 5`にしないとLINEに怒られます。
    * くみあわせて使う場合はcontents.lengthを足し算した値が5を超えないようにしないと怒られます。
* 画像のURLなどはhttpsでないと怒られます。

# 最後に
[APIのリファレンス](https://devdocs.line.me/ja/)読んでおけば問題ないとおもいます。
初めてcoffeescriptをちゃんと触って、アダプターも初めて書きました。
至らない点もあるかと思いますので、教えていただくと幸いです。

まだ機能的に十分ではないので、暇を見て機能追加していきます。
ソースコードは[こちら](https://github.com/pyonk/hubot-line-message-api)です。