【初めてでも簡単】GASでもできる！LINEでデジタル会員証発行！

# GASでできるLINEデジタル会員証
LINE公式アカウントでいろいろな会員証が増えてまいりました！
LINEでいろいろできるようになってうれしい限りです。

いろいろハンズオンをやっていて、一番とっつきやすいものがGASを使ったもの！
サーバーを特に用意せずに、Googleアカウントさえ持っていればすぐに無料で始められるのが良いところだと思っております。

LIFFを使った会員証を作りたかったのですが、GASだとGoogleの認証が何かひっかかってうまくいきません、、、
ということで、LIFFをつかわずにできる会員証を作成してみました！

1つのLINE公式アカウントで会員証表示も、店舗運営の管理者によるポイント加算や利用もできるという、今までにあまりない(⁉)ものとなっております！

:::note info
2024-10-27
既存のLINE公式アカウントにこの会員証のシステムを連携した場合、これまで一旦、ブロック⇒ブロック解除が必要でしたが、会員証と送れば、登録されるようにいたしました。
:::

# 完成品イメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/c90f916a-285d-7040-a7da-3bbe58a127ba.png)

会員証デモアカウント
アカウント名：まっしゅるブラザーズ会員証
https://lin.ee/yOdU2iC
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/fbab111a-037e-513d-ca6e-b80e7cc23ed3.png)

:::note info
デモなので登録して是非お試しください！個人情報はいれずに、ニックネームでやってください！
管理者設定キーワードは【LINEDC管理者】です
:::

利用者がLINE公式アカウントを友だち登録すると、名前、性別、生年月日の入力を求められ、入力が完了すると会員証が発行されます。

そして、その会員証を管理者がスマホで読み込むと、その会員にポイントを付与したり減算できるという、会員証だけではなく、管理者(店舗の方など)がポイントを自由に増減できるというところがポイントです！
それが１つのLINE公式アカウントでできる、、、なんか色々使えそうなイメージが浮かびませんか？？
GASなので一気に何十人もの人のポイント変更があると厳しいですが、数店舗でや、学校のイベントなどでもつかえるのでは！？と思っております。

# 作成方法
まずは、習うより慣れろということで、作ってみましょう！

https://specialman9999.github.io/20230524handson/#2

まずは上記のリンク先の資料の
２．LINE Developers への登録
３. チャネル作成
４. MessagingAPI設定
までして

チャネルアクセストークン

と呼ばれるものをコピーしてメモ帳などにペーストしておいてください。
(次の章のGASとスプレッドシートの設定で使います。)

:::note warn
アクセストークンの先頭の文字が記号(-や+など)の場合、こちらのコードでは
うまく動かないのでLINEdeveloperでチャネルアクセストークンを再発行してください。
:::

そして
5. LINE公式アカウント機能の設定
にある。応答メッセージで【無効】にしてください。
(今回はチャットはオフのままで大丈夫です)

次にLINEdeveloperの【Messaging API設定】タブの上の方にある
ボットのベーシックIDをコピーしてメモ帳などにペーストしておいてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/8e413459-a2c6-490b-b8b1-42547d2cc559.png)


# GASとスプレッドシートの設定

https://docs.google.com/spreadsheets/d/1q2duRzWBqcL3p2rCdd11jCDNn1UgS2B7cpmBo84-Xl8/edit?usp=sharing

次に上のスプレッドシートを開き、マイドライブかどこかにコピーをしてください。

:::note info
読み取り専用のファイルとなっております。コピーしてご利用ください。
:::

:::note warn
2024-04-15
Google Chart APIによるQRコード生成不可によりQR code APIへと変更いたしました。
:::



コピーが完了しましたら、設定を行います。
【設定シート】を、開いてセルC3に会員番号の最初につける文字列をいれてください。
初期設定では【LINEDC】となっております。(店舗名の略称などがおすすめです！)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/8b3734bc-7507-0932-9f04-be1c012a61eb.png)

その後、会員証のQRコードを保存するフォルダを作成します。
フォルダはGoogleドライブにフォルダを作成して保存するようにします。
(Googleドライブがいっぱいの時は会員証が作成できませんので残り容量にご注意ください。)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/cc29f9eb-0de6-9c41-b09d-a4d04bed02b5.png)
【設定シート】にある【会員証フォルダ作成】ボタンを押してください。

すると最初だけ認証の許可をGoogleから求められますので【OK】を押します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/a8672e09-b1dd-ff61-bfe9-598c4c589ab8.png)

すると、下記のように「このアプリはGoogleで確認されていません」とでます。
そこで、安全なページに戻るではなく、左下の【詳細】ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/d70c1776-092e-ecd9-998e-da4675846a0a.png)

すると、安全ではないページに移動とでますのでそちらを押します。

:::note info
GASを使っていろいろなことを実行すると必ず出る表示なのでご安心ください。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/d3d1a4f8-4051-7c19-7615-228893d96714.png)

そして、いろいろなことを実行しようとしていますがよいですか？？
と聞いてきますので【許可】を押してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/6a2e28e4-1fb2-64c5-cc89-e9f429950ecd.png)

すると、GASの実行が止まってしまってますので、再度【会員証フォルダ作成】ボタンをおしてください。
実行が終わりましたら下記の注意書きがでます。

こちらでGoogleドライブのマイフォルダに会員証フォルダが作成されております。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/82a7b305-05ac-9c5e-3983-ab60ffa73795.png)


C8セルにリンクが表示されていますので、そちらをクリックすると、そのドライブに飛んでいきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/3bc2b74e-3d6c-d96a-ab2c-454d49779861.png)

このフォルダに会員証のQRコードが保存されていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/c745e262-799b-3133-0928-86ae35bc72b2.png)

次に先ほど、LINEdeveloperの画面でコピーしました
チャネルアクセストークン
を、C12セルに貼り付けます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/8447139c-fcc1-25bd-272e-334e45f99f19.png)

そしてセルC15に、先ほどメモしました　ボットのベーシックIDを記載してください。
(@マークありで記載してください)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/feb5d245-a917-aed7-6a02-fac099d4d518.png)

そして次に管理者設定キーワードを入れます。
この文字をLINEのトーク画面に送ることでその人が管理者になれるキーワードになります。

今回は【LINEDC管理者】としました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/fca86ede-4d40-35ec-40b9-cf68d853dc04.png)

こちらで設定シートの入力は完了です！
あと少しで完成です！！

# GASのデプロイ
何やら、聞きなれない言葉かもしれませんがご安心ください。
今作ったものや実はこっそり仕組まれていたコードを動かせるようにし、LINE APIと連携させるための設定をします。

スプレッドシートに上側にある【拡張機能】⇒【AppsScript】を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/a788a1a1-41c4-9ebc-ea7f-871522fcd57e.png)

何やらいっぱい書いてますが、まずが動かすことを優先させますので気にしないでください！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/61532798-2bb3-ac5c-e4fa-d5fb1d4bc036.png)

右上にあります、【デプロイ】⇒【新しいデプロイ】を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/78b63504-182e-8e2c-ae71-ba94e567ca38.png)

下記の設定を入力します。

 | 項目 | 入力内容 |
|:-----------|:------------|
| 説明       |  例）ハンズオンデプロイ初回　※この欄は空欄でもかまいません |
| ウェブアプリ       |  自分        |
| アクセスできるユーザー    |  全員      |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/f1fcf171-85b2-c43e-7cbe-2ce03203c193.png)

その後、デプロイボタンを押しましたら下のように新しいデプロイがでますのでウェブアプリのアドレスをコピーして、メモ帳などにペーストしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/6ae263c2-ba74-04b1-dd9f-a032a89731b7.png)

そして、完了を押して画面を閉じてください。

# webhook設定
こちらで先ほどのGASとLINE APIを連携させます。
LINEDevelopersの画面に戻り、MessagingAPI設定タブを選択し、Webhook設定のWebhook URLのところに、先ほどコピーしたWEBアプリのURLを貼り付けます。

貼り付けて更新ボタンを押し、そしてwebhookの利用にチェックをいれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/a654bc53-83cb-fc90-6628-bb62bfe3a3c1.png)

以上で、完了となります。

# 動作確認

実際に、動くか皆さんのLINEに友だち登録をして、動作するか試してみましょう。

LINEDevelopersから、MessagingAPI設定タブを選択します。

するとQRコードが表示されておりますので、こちらをスマホで読み込んで友だち登録します。

友だち追加しますと、名前入力や性別、生年月日が聞かれますので入力して登録してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/626c5713-e18b-d802-57e6-042cbc8f4e0c.png)

登録が完了しましたら、QRコードを今回は初期ポイントで50pt追加された状態の会員証が発行されます！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/7fe80407-e976-08c4-8975-ca6dc44c0441.png)

会員証の呼び出し方ですが【会員証】と話しかけると出てきますので
リッチメニューなどで【会員証】というメッセージを設定していただくと使いやすいと思います。

リッチメニューの設定はLINEの公式HPで、、、

https://www.lycbiz.com/jp/manual/OfficialAccountManager/rich-menus/

# 管理者の設定の仕方

管理者の設定ですが、【設定シート】で設定しました、キーワードをトーク画面で送信してください。
それだけで、管理者になれます！
(なので推測されにくいキーワードで関係者以外にはもらさないようにしてください)

管理者になりましたら、会員証のQRコードを管理者のスマホで読み込んでください。
(1台のスマホでは厳しいので、スプレッドシートのuserシートに会員証の画像のリンクがあるのでそれを読み込んでいただくと、スマホ1台とPCで確認できます。)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/7cf46fcf-d1c6-88ba-c4df-5bc1d45f92b6.png)

QRコードを読み込むと、【会員番号】XXXXXXというようなメッセージが送信できる直前になっていますので
そのままメッセージを送信してください。
するとその会員番号のポイント処理をすることができます。

ポイント付与の場合は正の数
ポイント減算(利用)の場合は、-をつけて数字を送信してください。

するとその会員のポイントが変更されます！！

生年月日や名前など省きたい場合はコードをいろいろ修正してご利用ください！

# 終わりに
いかがでしたでしょうか？
GASだけでLINEデジタル会員証ができました！

コードをいろいろ見ていただいて修正されたいところはいろいろ修正してお試しください！
(コードの説明は今回はぶきました、、、次回時間があれば説明記事かきます！)

またこちらの内容のハンズオンを2023年12月20日にオンラインで実施いたします！
質問などもありましたらこちらでしていただけるとおこたえできますので是非ご参加ください！！
もし、当日ご参加できない場合でもYouTubeのコメント欄に質問をいただけましたらいつでもどれだけ先(!?)でも
お答えいたしますのでお気軽にご連絡ください！

https://linedevelopercommunity.connpass.com/event/304358/

それではLINE APIライフをお楽しみください！！


:::note info
2023/12/20
本資料にあるスプレッドシートのGASを変更し
会員証の表示を下記のものへと変更いたしました。
(会員番号が長い場合でも表示されるようにしました)
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/71a9d5f8-a25c-d838-8225-1dd24daec515.png)