LoginSignup
1
0

More than 3 years have passed since last update.

Google Cloud Functionsを使ったおうむ返しLINE botの作成

Posted at

goでLINE Botを作成しようと思い、まず初めにLINE APIのサンプルでも紹介されているおうむ返しをするLINE Botを作成する。
BotということでLINEのmessagingAPIを利用。

今回作成したBotのGitHubはこちら

作成方法

1, チャネルの作成

LINE messagingAPIを利用するためにチャネルを作成したければならない。
チャネルとは、LINE Developersによると

チャネルは、LINEプラットフォームが提供する機能を、プロバイダーが開発するサービスで利用するための通信路です。LINEプラットフォームを利用するには、チャネルを作成し、サービスをチャネルに関連付けます。チャネルを作成するには、名前、説明文、およびアイコン画像が必要です。チャネルを作成すると、固有のチャネルIDが識別用に発行されます。

となっており、プロバイダー(開発組織)とAPIとかの機能を紐付けるもので
チャネルによって紐付けられた機能が利用できるようになる。

チャネルの作成方法はLINE Developersで出ているのでそちらを参考にした方がいいです。

今回はBotを作成するので channel Typeはmessaging API を選択してください。

2,CHANNEL_SECRET&CHANNEL_TOKENの入力

対象のgitHubを下記のコマンドでcloneしてください。

$ cd {cloneするディレクトリ}
$ git clone https://github.com/Hiroya3/LINE_Bot_parrot_return.git

その後、server.goの

bot, err := linebot.New(
  "CHANNEL_SECRET",
  "CHANNEL_TOKEN",
)

CHANNEL_SECRET , CHANNEL_TOKEN の部分にそれぞれ
CHANNEL_SECRET : チェネル基本設定>チャネルシークレット
CHANNEL_TOKEN : Messaging API設定>チャネルアクセストークン(ロングターム)
を入力。

3,Cloud Functionsの作成

Cloud FunctionsのConsole を使用したクイックスタート始める前に を参照し、Cloud Functionsを作成する。

4,Cloud Functionsへデプロイ

デプロイ時の注意点

①go.modが必要

Goではcloud Functionsへのdeployには対象のソースコード以外にも go.mod (と go.sum )ファイルも必要となっている。
参考:Go での依存関係の指定

今回のGitHubには既に入っているため、 作成する必要はない が作成する場合はこちらを参照

②goの関数名は大文字始まり

私が躓いたところでもありますが、 関数名は大文字始まり にし他パッケージからの参照を可能とします。

③基本的にfunction名は関数名と同じ

ローカルマシンからのデプロイに記載があるように -entry-point フラグを指定しない限り、コードに同じ名前の関数を含める必要があります。

デプロイ

以下のコマンドでデプロイし、cloud console上に Omubot というfunctionが作成されたことを確認する。
また、コンソール上に表示される httpsTrigger: url: はメモしておく。
(5,Webhookの設定で使います)
※gcloudコマンドがセットアップされていない場合はこちらを参照

gcloud functions deploy Omubot --runtime go111 --trigger-http

--runtime : goの実行バージョン
--trigger : トリガーの種類

5,Webhookの設定

最後にcloud functionsに登録された関数をLINE Developer内の1で作成したチャネルに設定する。
設定はこちらを参照。

設定するURLはデプロイ時に表示される httpsTrigger: url:

1
0
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
1
0