Skip to content

nowsprinting/LineBotPlayground

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LINE Bot Playground

LINE Messaging APIの機能を検証するためのApp

仕様

Webhookで受け取った発言をオウム返しする。ただし、以下のコマンドが投稿されたときは特別な挙動をする

  • /mention "@"+ユーザIDでメンションを試みる(単なるテキストになった)
  • /mention2 "@"+ユーザIDでメンションを試みる(単なるテキストになった)
  • /profile ユーザIDをキーに、GetProfile()でプロファイルを取得(Botと友だち登録していないと取得できない)
  • /profile2 追加されたAPI、GetGroupMemberProfile()およびGetRoomMemberProfile()でプロファイルを取得(Botと友だち登録していないユーザの情報も取得できる)
  • /version バージョンを表示

Installation

Install golang libraries

$ go get -u google.golang.org/appengine
$ go get -u github.com/line/line-bot-sdk-go/linebot

app.yaml

backend/app.yamlにはLINE BOTのキー情報などを含むため、リポジトリから除外している。下記の書式でファイルを作成すること。

runtime: go
api_version: go1

handlers:
- url: /.*
  script: _go_app

env_variables:
  LINEBOT_CHANNEL_SECRET: 'LINE Messaging APIチャネルのSECRET'
  LINEBOT_CHANNEL_ACCESS_TOKEN: 'LINE Messaging APIチャネルのTOKEN'

version.go

バージョン番号は、make testmake deployの際に生成されるversion.goファイルに定義される。このファイルはリポジトリ管理対象外。

git cloneしたプロジェクトを直接goapp deployコマンドでApp Engineにデプロイすると、定数versionが未定義なためエラーとなる。make deployを使うこと。

Test

ローカルでテストを実行する

$ make test

特定のテストのみ実行する

$ make test RUN=テスト関数名

なお、

  • ローカル実行のとき、project idがtestappでないとデータストアに接続できないため、テスト実行時にtestapp 、デプロイ時に商用環境のProject IDを設定している。Project IDをリポジトリに残したくなかったが、やむを得ず。

Deploy

$ make deploy