初心者向けchrome拡張開発、最初の1歩

# 概要

* 作業効率化のためchrome拡張の開発に興味を持ったので自分用にメモ。
* Progate1周したくらいの初学者でも、この記事を読みながらサンプルを自分で動かせるのを記事の目標とします。
* この記事はハンズオン形式で進めますが、chrome拡張についての概要は省きます。
* (このあと応用部分を加筆するかも。)

公式URL：[拡張機能とは何ですか？](https://developer.chrome.com/docs/extensions/mv3/overview/)
(あとで日本語翻訳ツール使いながら流し読みすると良いです)

# 動かすのに最低限必要なもの

* Google Chrome ブラウザ
* エディタ

# さっそくHelloサンプルコード

google拡張のボタンを押したら**Hello Extensions!!!** と表示するだけのものです！
最小の手間で動くものを見たい人向けに。
(自分はこのあと特定のECサイト上でボタンポチして必要な情報をgoogle spreadsheetに転記するようなものを作る予定です。)

![スクリーンショット 2021-01-26 17.45.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1009606/81f921c0-f0e3-1457-74fd-cc528ed8b086.png)

* 必要なファイルは以下3点です。(動かし方は以降の項目に記載)
* コードはお好きにコピペしてどこかのフォルダに配置します。
* png画像はアイコン用なので好みでOKです。一応公式のものを貼ります。

必要なファイル3点

1. hello.html
2. manifest.json
3. gmKIT88Ha1z8VBMJFOOH.png →([DLして同フォルダに保存](https://storage.googleapis.com/chrome-gcs-uploader.appspot.com/image/WlD8wC6g8khYWPJUsQceQkhXSlv1/gmKIT88Ha1z8VBMJFOOH.png))

hello.html

```html
<html>
  <body>
    <h1>Hello Extensions!!!</h1>
  </body>
</html>
```

manifest.json

```json
{
  "name": "Hello Extensions",
  "description" : "Hello Extensions!!! と表示するだけ",
  "version": "1.0",
  "manifest_version": 2,
  "browser_action": {
    "default_popup": "hello.html",
    "default_icon": "gmKIT88Ha1z8VBMJFOOH.png"
  }
}
```

# manifest.json って何？

* そもそも初学者の方からしたらjsonファイルって何かと思います。
* jsonはJSONという共通フォーマットで書かれた設定やデータの塊です。
* **manifest.json** はchrome拡張を使うための設定を書くところになります。
* chrome拡張の肝です。興味があれば公式でどんな書き方があるか見ると良いです。

# サンプルコードの動かし方

公式にも記載がありますが、自分のやりかたを記載します。

## 1. chrome://extensions/ をURL欄から開く

![スクリーンショット 2021-01-26 16.58.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1009606/c4841f0d-4d3e-a2d8-1747-0fea6f4b0710.png)

chrome://extensions/ 

(↑リンク貼れなかったのでコピーしてURL欄に貼り付けてください)
これから開発時に使いそうな方はブックマークすると便利です。
chromeの右上メニュー「その他のツール」「拡張機能」からもアクセスできます。

## 2. 同画面右上の「デベロッパーモード」を有効にする

![スクリーンショット 2021-01-25 15.16.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1009606/5805308c-36af-0f17-31b2-79d62bbf4b96.png)


## 3. 「パッケージ化されていない拡張機能を読み込む」を押す

![スクリーンショット 2021-01-25 15.17.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1009606/f645c5a8-e12b-b01f-8b07-4239762f6ed3.png)
このあと先のファイルが配置してあるフォルダを選択します。

### 4. 拡張機能画面に今回登録したものがあるか確認

![スクリーンショット 2021-01-26 17.44.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1009606/aefa543b-daff-26da-dbb3-097f16bc284e.png)


### 5. URL欄右側のパズルマークを押す

![スクリーンショット 2021-01-26 17.33.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1009606/5cd9e24b-e6f2-e940-717d-1776b0142633.png)

### 6. 追加したchrome拡張をピン留め && アイコン押す

拡張をいくつか入れてる人はピン留めしないと表示されないかも？
![スクリーンショット 2021-01-26 17.36.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1009606/c170f00d-019c-b6cb-1480-8c64caf0bc63.png)

クリック後はこの通りです！

![スクリーンショット 2021-01-26 17.45.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1009606/81f921c0-f0e3-1457-74fd-cc528ed8b086.png)

この記事ではとりあえず以上です！
動くことが確認できたので、このあとは応用する方法を色々探っていこうと思います！
何気にQiita投稿初めてなので、気になった方は色々ご指南頂けるとありがたやです。


# 参考にした記事、URL

[Chrome拡張の作り方 Kindle版](https://www.amazon.co.jp/dp/B07ZK2JJQH/)

# 備考

1. 公式のサンプルにあった***"manifest_version": 3*** が2020年12月に「Google Chrome 88」ベータ版で使えるようになったらしい。でも自分のchromeでは使えなかった！常に開きっぱなしなせい？今回は***"manifest_version": 2*** と記載した。
2. 公式のサンプルにあった***"action:{}"*** の記法ではエラーとなった。代わりに ***"browser_action": {}*** の記法をここでは使った。