Gemini×GAS×LINE Bot基礎編(初めてでもまずはやってみよう)

# 2023年12月より話題のGemini

文字だけでなく、画像についての問い合わせなどもできるようになっております。
そのマルチモーダルにも今回対応したものをサクッとお試しで作ってみようと思います！

イメージ的にはこのような感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/bfc40315-bcc3-f25a-5664-058ad92491d5.png)
テキストの場合は、連続した会話(過去3回の履歴までおぼえているもの)をして
画像を送った場合は、その画像について1回だけ質問に答えるようにしております。
(画像について連続で聞く場合は、再度画像を送っていただく必要があります。)


# 全体的な流れ
### 1.Gemini API key取得
### 2.LINEdeveloperで各種設定
### 3.GASの設定


という、大きく分けて3段階の設定となっております。
早ければ5分ですべて完了しますので、まずは作ってみてそこから考えていきましょう！

# 今回必要なもの
・LINE developerアカウント(ない方でも、この説明内で作成しますのでご安心ください)
・Googleアカウント
となっております。

では、はじめていきましょう！

# 1.Gemini API keyの取得

まずはGeminiのAPI keyを取得しましょう！
（2024/3/20時点ではクレジットカードは必要ありませんでした。）

Geminiのサイトにアクセス
https://ai.google.dev/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/a2ff42e2-239c-65d5-32cb-bf25b7ebc691.png)

こちらで【Get API key Google AI Studio】を選択


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/e303dd20-ee94-d55b-c16e-1be62ef27056.png)

利用企画が出てくるので読んでチェックボックスをいれて【Continue】をクリック

:::note info
【Google翻訳 和訳バージョン】
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/fcdc0825-8d99-eb3f-4377-0423635b55b3.png)
・一番上は利用規約の承諾
・GoogleからGoogleAIに関するメールを受け取り希望か(オフでも可)
・GoogleAIの調査研究に参加するかどうか(オフでも可)
:::



その後出てくる画面で【GetAPI key】をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/a695ea95-7250-5a8d-75c7-089cebb6df55.png)


【Create API key】を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/32dcc06c-318a-d594-74eb-298e2a84ef4a.png)

【Create API key in new project】を選択
(GoogleWorkSpaceをご契約の場合、出ない可能性あり、、、)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/d456b95c-5651-91ee-4639-31e0b40427c5.png)

API keyが発行されるので、Copyしてメモしておく！！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/0d1f25d6-aad3-0c96-7706-b74316f860f3.png)

これでAPI keyが発行されましたのでGemini APIが使えるようになりました！！


確認方法
[Google AI Studio](https://aistudio.google.com/app/apikey)に、発行されたAPI keyが確認できます！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/2b275430-d035-5d93-5ef9-b7da9dd7d947.png)


# 2.LINEdeveloperで各種設定

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

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

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

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

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

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

# 3.GASの設定
## 3-1.スプレッドシートのコピーおよび設定データ入力

https://docs.google.com/spreadsheets/d/19X-BUXwgC-tTkhhCKTwZj-RXttCIFmO3Kw7Pz910_tc/edit?usp=sharing

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

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

コピーが完了しましたら、設定を行います。
【settingシート】を開きましたら、
B3に先ほどひかえました、【Gemini API key】を入力します。
次に、LINEbotに送られた画像を保存するフォルダを設定するために
【フォルダ作成・設定】ボタンを押下します。
すると最初だけ認証の許可をGoogleから求められますので【OK】を押します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/e87dfbda-7fe7-e578-2375-e72b13d4ea34.png)

:::note warn
公開設定されているフォルダになりますので、重要なファイルは保存しないでください。
:::

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

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

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/f44631dc-5bed-8891-2b28-c578e07397be.png)

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/b615fd4b-6c2f-230a-5192-6ed0b849e6b1.png)

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

こちらでGoogleドライブのマイフォルダに【Gemini画像保存用】が作成されております。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/ddac5626-f5dd-ce8b-f276-8112d2df054b.png)

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/b3747362-031d-17d2-b712-fb93edc0425e.png)

次に先ほど、メモしました
【LINEdeveloperで発行したチャネルアクセストークン】を B1セルに
【Gemini API key】をB3
を、貼り付けます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/da38ba20-2a41-526d-e627-e26e62abb3bb.png)

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

スプレッドシートに上側にある【拡張機能】⇒【AppsScript】を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/ab521b12-6d0f-65d4-d071-74e355b9649d.png)

何やらいっぱい書いてますが、まずが動かすことを優先させますので気にしないでください！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/037fe8fe-3198-edb3-1fc8-81a0fa8a6dac.png)

右上にあります、【デプロイ】⇒【新しいデプロイ】を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/204b5706-1147-71e5-42ca-50ba66ebc396.png)

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

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/c2090e90-d9c4-b876-fe43-f2628684d278.png)

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624933/637a9be9-6f00-ce3b-fe15-0a49846c362f.png)

## 3-3.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/e163f5f5-3f27-7c70-d734-d3fa0223eff7.png)

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

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

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

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

# 完成となります！！

Gemini APIを利用したLINEbotが作成できました！！
コンテスト等に応募する際の参考になればと思います。

こちらでハンズオンも実施しておりました。
アーカイブ映像もありますので、ぜひご参考にしてみてください。

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

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