walkingmask’s development log

IT系の情報などを適当に書いていきます

MENU

恋人とのスケジュール管理を円滑にするための GAE/Go × LINE Messaging API × Google Calendar

1. メリークリスマス♪

http://3.bp.blogspot.com/-c6m6wJzDFYw/WEVXgta1MUI/AAAAAAABAMQ/68liDI5M8pUY9Jt2v-1zydvYw94_jodUACLcB/s800/christmas_dance_tonakai_santa.png

クリスマスが今年もやってきました!

みなさん恋人とイルミネーションを見て楽しんだりしてるでしょうか?

私はひたすらコタツに入ってぬくぬくする予定です。

ところで、みなさんは恋人とクリスマスにイルミネーションを見に行くといった予定を円滑に管理できていますか?


「え?行くって言ったよね?忘れたの?」


なんて言われておへそを曲げさせたりしていませんか?

そんな恋人とのスケジュール管理にお困りの方にオススメなのが 「Google Calendar」 です!

共有設定をしておけば、お互いのスケジュールを一つのカレンダーで管理することができます。

support.google.com

PC からの利用はもちろん、iPhone からも Android からもアプリとして利用できますし、ブラウザさえあればどこからでも利用できます。

しかし...


「え?予定追加したよね?見てないの?」


通知機能をしっかり設定しないと、そんなことが起きてしまう危険もはらんでいます。

そこで、今回はそういった危険を回避するために、「カレンダーへの予定の追加」「予定直近にリマインド」「その日の予定の確認」といったことを通知してくれる 「LINE BOT」 の作成に Google App Engine (GAE) と Go言語 と LINE Messaging API を使って挑戦したいと思います。

LINE ならば恋人同士であればほぼ使っているでしょうし、頻繁にチェックする上に通知もしっかり来ます。

そこに、カレンダーの変更などのイベントが通知されれば恋人も自分もニッコニコになることでしょう!

2. 自己紹介

今年の後半に入り GO 言語を少しずつ始めて、Golang 勉強会 in Okinawa に参加させていただいたり、みんなの GO をちょこちょこ読んだり、A Tour of Go] をやってたりしています。

そこで,今回の記事は Okinawa.go Advent Calendar 2016 に投稿してみようと思い、書くに至った次第です。

しかし、GAE/Go と LINE BOT についての記事は結構存在しており、何番煎じかなので、今記事ではその記事を頼りに Go 初心者の私が BOT を作れるまでの過程を少しでもより詳細に書くことで付加価値を高めたいと思っています。

なので、Go や GAE をある程度わかっているという方は、ページ下部の参考にさせていただいた記事をご覧になることをお勧めします。

3. 開発環境

先に、私の今回の開発環境を軽く紹介しておきます。

4. 準備

今回最も重要となるのは LINE Messaging API です。

business.line.me

「Messaging APIは、LINEサーバを介して、あなたのサーバとLINEアプリ間で情報の送受信を行う仕組みです。」

とあるように、これを使えば自分のサーバから LINE アプリに対して様々なアクションを行うことができます。

自分のサーバというのは、この API を利用できるものであれば良いのですが、今回は Google App Engine を利用します。

Google App Engine は自分用のサーバと言えるものではないのですが、これを利用すると Go 言語を使って Messaging API を利用することができるということで、こちらを利用します。

ということで、まずはこの2つを利用する準備をします。

4.1 Google App Engine

手始めに Google App Engine の準備をしていきます。

参考にさせていただいた記事はこちら。

qiita.com

www.apps-gcp.com

以下、Google アカウントを持っていることを前提とします。

また、クレジットカードが必要となります(ここが学生の私には少しハードルが高いポイントだったのですが、登録して数ヶ月経った今でも GAE からの請求は一度も来てないので、変なことさえしなければ安心していいと思っています)。

Google App Engine を利用するには、Google Cloud Platform (GCP) の利用登録をする必要があるので、その手続きをしていきます。

cloud.google.com

ページにアクセスしたら以下の手順に沿って登録を進めてください。

  1. 「使ってみる(無料)」ボタンをクリック
  2. 国 : 日本
  3. 受託 : 任意、はい
  4. 「同意して続行」ボタンをクリック
  5. アカウントの種類 : 個人
  6. 名前、住所、電話番号、カード情報を記入
  7. 「無料試用を開始」ボタンをクリック

登録が完了したら、次はプロジェクトの作成をします。そのために、コンソールにアクセスします。

console.cloud.google.com

アクセスしたら、上部の青いメニューバーにある Project から「プロジェクトを作成」をクリックします。

f:id:walkingmask:20161222232025p:plain

適当なプロジェクト名を入力して「作成」をクリックします。しばらくすると、作成したプロジェクトのダッシュボードに移動します。

ダッシュボードに移動したら、ページ下部に移動して「プロジェクト ID」の下に記載されている文字列をメモしておきます。

ここからは、ターミナルとテキストエディタ等を起動して作業します。

まずは、GAE の Go 言語用の SDK (GAE 用のアプリを Go 言語で作るためのツール) をインストールします。といっても Mac の場合は Homebrew を使ってしまえば簡単で、ターミナルを起動して

brew install go-app-engine-64

と入力してしまえばインストール完了です。適当な場所で

mkdir foobar

のように好きな名前のディレクトリを作成し、その中に

app.yaml

application: "メモしたプロジェクト ID"
version: 1
runtime: go
api_version: go1
handlers:
- url: /.*
  script: _go_app

app.go

package main

import (
  "fmt"
  "net/http"
)

func init() {
  http.HandleFunc("/hello", handler)
}

func handler(w http.ResponseWriter, r *http.Request) {
  fmt.Fprint(w, "Hello, world!")
}

といったファイルを用意します。用意できたら、まずは手元でテストするためにターミナルで

goapp serve .

と入力し、Chrome などのブラウザで

http://localhost:8080/hello

にアクセスします。そこに "Hello, world!" と表示されていれば成功です!

続いて、作成したこの "Hello, world!" だけを表示するアプリを GAE にデプロイ (GAE 上で作成したアプリが動くようにすること) するために、次のようにターミナルで入力します。

goapp deploy .

初回のデプロイの時は、GCP の認証をターミナル上で求められると思うので、GCP に登録した Google アカウントの情報を指示に従って入力してください(うろ覚え)。

デプロイが完了したようであれば、次のような URL にブラウザからアクセスしてみてください。

http://メモしたプロジェクトID.appspot.com/hello

そこに、手元でテストした時と同じように "Hello, world!" の文字が出ていればデプロイ成功です!

これで、GAE を利用する準備はほぼ完了なのですが、GAE について以下のような記事も参照しておくといいかもしれません。

msitter29.hatenablog.com

koni.hateblo.jp


また、プロジェクトをとりあえずテスト用として作成していて、新たなプロジェクトを作ろうとしている場合はテスト用のプロジェクトは消しておいたほうが良いようです。

Quickstart for Go App Engine Standard Environment  |  App Engine standard environment for Go  |  Google Cloud Platform

LINE Messaging API

Messaging API の準備に入っていきたいと思います。

参考にさせていただいた記事はこちら。

nowsprinting.hatenablog.com

後にも先にも必要になってくるのは、まず LINE アカウントです。これは持っていることを前提にして話を進めます。また、メールアドレスとパスワードの設定も登録済みとします。

LINE アカウントを持っているだけでは Messaging API は利用できなので、そのために LINE BUSINESS CENTER にアクセスしてビジネス用アカウントを作成します。

business.line.me

いきなりログイン画面に行き、ここで普段利用している LINE アカウントの情報を入力します。その後は指示に従って登録を進めてください。

BUSINESS CENTER にログインできたら、「アカウントリスト」に移動して「ビジネスアカウントを作成する」をクリックします。

f:id:walkingmask:20161222232907p:plain

次に、アカウント名(BOT の名前になる)と画像を入力して、適当な業種を選択します。利用規約を確認したら「確認する」をクリックして、「申し込む」を押します。

アカウントの作成ができたら、アカウントリストの作成したアカウントの「LINE @ MANAGER」をクリックしてアカウントの設定ページに移動します。ページの「設定」から「Bot 設定」に行き、「API を利用する」をクリックします。

f:id:walkingmask:20161222232930p:plain

API の利用設定が有効になったところで、Bot の設定をしますが、ここは任意に設定してください。私は全部「利用する」にしています。

最後にもうひと作業です。「Bot Settings」の「Status」から「LINE Developers」へ飛びます。ここで、「Channel Secret」を「Show」で「Channel Access Token」を「ISSUE」して表示し、メモしておきます。

以上で、ひとまず Messaging API の準備はおしまいです。

参考にさせていただいた記事一覧

...
...
...





スケジュールを円滑にする相手がいなくなってしまったため開発を中断しています。
また円滑にしたくなったら再開したいと思いますが、もし他に恋人とのスケジュール管理を円滑にしたいという方がいましたら是非続きを書いてもらって一報下さるととても嬉しいです。
ここまで期待して読んでくださった方がいた場合はごめんなさい。