2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Google Cloud Platform, Cloud FunctionsでつくるLINE Bot(1)

Last updated at Posted at 2023-01-28

Google Cloud Platform(以下GCP)のCloud FunctionsでLINEのBotを作成します。
プログラミングにはGo言語を使用します。
以下、全4回の予定です。

  1. (本記事)LINE BotとCloud Functionsの作成
  2. オウム返しBot
  3. セキュリティ強化
  4. セッション管理(BMI計算Bot)

第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を設定する。

webhook.png

Cloud Functions側でアクセスログの出ていることを確認する

LINE Developersコンソール上のQRコードを読み込み、友だちとして追加します。
適当なメッセージを送り、Cloud Functions側にログの出ることを確認できればOKです。

cf-log.png

HTTPリクエスト全体をログに出力しているので、メッセージそのものもログ中で確認できます。
以下は「こんにちは」と送信した場合のログです。

message-event.png

ソースコード全体

ソースコード全体は以下のとおりです。
https://github.com/hsmtkk/qiita-gcp-cf-line-bot/blob/main/simple/simple.go

次回

次回は受信したメッセージをそのまま返信する機能(オウム返し)を実装します。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?