Google Cloud Platform(以下GCP)のCloud FunctionsでLINEのBotを作成します。
プログラミングにはGo言語を使用します。
以下、全4回の予定です。
第1回の目標は以下の通りです。
- Cloud Functionsを作成する。
- LINE Botを作成する。
- Cloud Functions側でアクセスログの出ていることを確認する。
Cloud Functionsを作成する
HTTPリクエストをログに出力するだけの簡単なCloud Functionsを作成します。
Cloud Functionsのチュートリアルにあるものを少しカスタマイズします。
package simple
import (
"log"
"net/http"
"net/http/httputil"
"github.com/GoogleCloudPlatform/functions-framework-go/functions"
)
func init() {
functions.HTTP("simple", simple)
}
func simple(w http.ResponseWriter, r *http.Request) {
dumpReq, err := httputil.DumpRequest(r, true)
if err != nil {
log.Fatalf("failed to dump HTTP request; %v", err.Error())
}
log.Print("dump HTTP request")
log.Print(string(dumpReq))
w.WriteHeader(http.StatusOK)
if _, err := w.Write([]byte("OK")); err != nil {
log.Fatalf("failed to write response; %v", err.Error())
}
}
Cloud Functionsをデプロイすると呼び出し用のURLがわかります。
LINE Botを作成する
公式サイトのBot作成手順にしたがいます。
要点を簡単に記述します。
- プロバイダーを作成する。
-
Messaging API
チャネルを作成する。 - WebhookにCloud FunctionsのURLを設定する。
Cloud Functions側でアクセスログの出ていることを確認する
LINE Developersコンソール上のQRコードを読み込み、友だちとして追加します。
適当なメッセージを送り、Cloud Functions側にログの出ることを確認できればOKです。
HTTPリクエスト全体をログに出力しているので、メッセージそのものもログ中で確認できます。
以下は「こんにちは」と送信した場合のログです。
ソースコード全体
ソースコード全体は以下のとおりです。
https://github.com/hsmtkk/qiita-gcp-cf-line-bot/blob/main/simple/simple.go
次回
次回は受信したメッセージをそのまま返信する機能(オウム返し)を実装します。