zoomのブラウザタブを自動で閉じたい→ChatGPTに聞いてみた

# はじめに
ChatGPTを活用し、Chrome拡張機能を作成してみたので、
どんなプロンプト（質問）を投げて、どのように実現したのかを紹介する記事です。

# きっかけ
毎日使うzoom。ミーティング参加後に残る邪魔なChromeブラウザのタブを自動で閉じてくれたらいいなーと考えていたところ、
そいえば最近ChatGPTが話題だし、解決できるかわからないけど聞いてみよう。と思い立ちました。
閉じるだけならぶっちゃけ数秒ですが、使用頻度が高いので勝手に消えてくれると地味に嬉しい！というのがきっかけです。
↓このブラウザタブのことです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168851/67105af0-1f63-0973-b935-e388af57dd32.png)

# この記事を読むとわかること
- ChatGPTの活用方法の一部をわかった気になれる
    - どんな質問の仕方をすると良いのかわかった気になれる

# 前提情報
:::note warn
 - 今回は普段遊んでいる個人アカウントを使っています
 - 有料契約ではないので、GPT3.5です
 - なにも知らないテイで聞いてみてます
    - 実際知らんけど笑
:::

# 失敗事例①
- まずはとやかく考えず、ライトに聞いてみる
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168851/0127aaaf-6fc7-5b5a-f09f-24e4ccb45fec.png)
- すると早速作り方について返答が
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168851/636e3b6c-f9c2-c37b-2bef-0b7b5bd6adf2.png)
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168851/6570dd97-fc51-e328-8889-db3fe3176db8.png)

# 気づき①
なるほどなるほど、、、
具体的にどのタイミングで閉じたいのかを指定していないため、
「zoomミーティングが終わったタイミングで閉じる」という仕様になったわけですな。
zoom以外のタブが閉じることはないよーって部分はgoodです。
ちなみに、Google Chromeの拡張機能とは指定していませんが、
これは恐らく、ChatGPTを使っているブラウザがGoogle Chromeだったため
自動的にChromeなんだと判別したものと思われます（本来であれば、なんの拡張機能なのかも指定した方がいいと思います）

# 失敗事例②
- 次はタイミングについても言及してみました（先程の続きで質問してます）
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168851/00048a4b-9486-fbf8-2981-663315b1075c.png)
- するとこんな返答が（私の質問の仕方が悪かったのにChatGPTが非を認めているのは心苦しい笑）
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168851/733ccb99-faed-e51e-0517-7c059f5605fd.png)
- ふむふむ、じゃあこれを早速使ってみたいけど、どうやって読み込むのか聞いてみる
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168851/27325a96-f804-eac9-7047-7a1d1f8607fb.png)
- 具体的な手順を教えてくれた
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168851/47027598-2a10-c46b-0098-600532de2518.png)
- 実際にやってみる
    - 書類（Document）の配下に作成。保存場所（ディレクトリ≒フォルダ）はどこでもOKです
    - 2つのファイルを作成
        - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168851/3fce08bc-f4ba-4589-298a-ed5a54758c5b.png)
    - ファイルはtouchコマンドで作成
        - コマンドでファイル作らなくても、メモ帳とかで作成→後で拡張子（.txt）を変えればOK
    - ファイルの中身を編集（ChatGPTに教えてもらったコードをコピペ）して保存
    - Chromeの拡張機能を開いて
        - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168851/ac3d331f-841f-746f-99d9-68f7cfaf4bd4.png)
    - 左上の「パッケージ化されていない拡張機能を読み込む」を押す
        - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168851/316063bb-7b83-e5f4-840e-31d40645d2aa.png)
    - 先程作成したディレクトリを指定する
        - ChatGPTの返答ではzip圧縮の必要性を説明していますが、実際には圧縮する必要はなく、フォルダをそのまま指定すればOKでした
            - ChatGPTは2021年現在の知識なので、直近で仕様変更があったのかな？知らんけど
    - こんな感じで拡張機能一覧に反映されました
        - ![スクリーンショット 2023-04-11 11.55.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168851/bbe6190e-ebf9-4fad-e879-a9c8e0dbcd99.png)

# 気づき②
で、実際に使ってみたのですが、ほんとに直後に閉じた！
まだミーティング参加できてないタイミングで！笑

これはつまり、実際にzoomミーティングに参加できたかどうかを判別したうえでタブを閉じる処理をしているわけではないので、
参加処理（ブラウザの更新）が開始されたらすぐさま閉じてしまっている状態ですね。
zoomミーティング参加には数秒必要なので、その前にタブ閉じてしまう→結果zoomに入れない。
という状態になってしまいました。
よって「直後」ではなく「●秒後」と指定する必要がありそうです

# そして成功へ
- 5秒あればzoomミーティングへ参加できそうだったので、5秒と指定しました
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168851/05a0c1d7-8d57-b4f6-dcb0-64cf8b24aa34.png)
- すると、、
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168851/eb48c399-bbc6-f478-4d69-7b121d728fc5.png)
- アドバイス通り、先程作成した`background.js`の中身を上記に書き換えて保存
- するとどうでしょう。問題なくzoomミーティングへ参加でき、5秒たったタイミングで自動でタブを閉じてくれました！

# まとめ
- なにを実現したいのか、どう質問すると良いのか、質問する側のスキルも重要です
    - とはいえ、そこすらも補完してくれたりするのである程度は大丈夫
    - ただし「拡張機能を作って」というリクエストはダメ
        - ChatGPTに拡張機能そのものを作ってもらうことはできません
- 日常の細かい不満はChatGPTが解決してくれる可能性が高い！
    - 個人的には今回のはまさに良い事例でした

# 蛇足
- いつも入るzoomミーティングがある場合は、以下のようなブックマークを作っておくと便利です
    - ブックマークのURLを編集
        - `javascript:window.open('https://*******);`
        - ↑常に別タブで開いてくれる
        - 新しいタブを開く手間がはぶける（勝手に閉じるので気にせずOK）