はじめに
- なぜ作ったか
同ページ内で簡単に要約してくれる拡張機能があれば便利なんじゃないかと感じたため - 使用技術
Plasmo / TypeScript / Gemini
実装のポイント
- 付与する権限は使用用途だけにする必要がある
拡張機能のプライバシー項目にてこの拡張機能が単一機能なのかそして
なぜその権限を使う必要があるのかの理由が求められるため。
自分が使用した権限↓
"manifest": {
"host_permissions": [
"https://generativelanguage.googleapis.com/*"
],
"permissions": [
"contextMenus",
"activeTab",
"storage"
],
"background": {
"service_worker": "background.ts"
}
-
Gemini APIとの連携方法
個人なので拡張機能を入れてもらって人にAPIキーをそれぞれ入力してもらう方式になっている。
この部分でgeminiAPIとつながる必要があるのでhost権限が必ず必要になる。 -
content.tsxの制約とフォールバック設計
拡張機能を更新した際や特定の状況でcontent.tsxが読み込まれない等あるのでその場所で送れなかった場合にopenpopupを使い表示できるようにした。
おわりに
初めての投稿でどう書けばいいのかよくわかっていないのでいたらぬ点があればご指摘お願いします
下記のリンクでダウンロードが可能です