{
    "componentChunkName": "component---src-templates-blog-post-jsx",
    "path": "/post/crx-gcal-url-opener/",
    "result": {"data":{"site":{"siteMetadata":{"title":"WEB EGG","author":"Leko - CTO at Yuimedi"}},"markdownRemark":{"id":"ee770fd8-831b-5e4d-ba4c-400ebb316e33","excerpt":"れこです。当記事では Google カレンダーのイベントの開始数分前に、イベントに紐づいたリモートミーティングの URL を自動で開く Chrome 拡張を作ったのでその紹介をしたいと思います。 TL;DR インストールはこちら（Chrome ウェブストア） OSS です。GitHub…","html":"<p>れこです。当記事では Google カレンダーのイベントの開始数分前に、イベントに紐づいたリモートミーティングの URL を自動で開く Chrome 拡張を作ったのでその紹介をしたいと思います。</p>\n<h2 id=\"tldr\" style=\"position:relative;\"><a href=\"#tldr\" aria-label=\"tldr permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>TL;DR</h2>\n<ul>\n<li>インストールは<a href=\"https://chrome.google.com/webstore/detail/crx-gcal-url-opener/pjginhohpenlemfdcjbahjbhnpinfnlm?hl=ja\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">こちら</a>（Chrome ウェブストア）</li>\n<li>OSS です。GitHub のリポジトリ<a href=\"https://github.com/Leko/crx-gcal-url-opener\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">こちら</a></li>\n<li>何かあればリポジトリの Issue にお願いします</li>\n</ul>\n<h2 id=\"当記事の背景と反省\" style=\"position:relative;\"><a href=\"#%E5%BD%93%E8%A8%98%E4%BA%8B%E3%81%AE%E8%83%8C%E6%99%AF%E3%81%A8%E5%8F%8D%E7%9C%81\" aria-label=\"当記事の背景と反省 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>当記事の背景と反省</h2>\n<p>当記事を書くに至ったきっかけのは 2022/06/28 にツイートしたこの投稿です。</p>\n<blockquote class=\"twitter-tweet\"><p lang=\"ja\" dir=\"ltr\">Chrome拡張機能作った。ストアに公開済み。Googleカレンダーのイベント開始数分前にイベントに設定されたURL（Google Meet, Zoom）を自動で開くもの。もうこれ無しでは仕事ができない。<a href=\"https://t.co/pYY074hdZD\">https://t.co/pYY074hdZD</a> <a href=\"https://t.co/DvXZdAZnGu\">pic.twitter.com/DvXZdAZnGu</a></p>&mdash; Leko / れこ (@L_e_k_o) <a href=\"https://twitter.com/L_e_k_o/status/1541572838208851969?ref_src=twsrc%5Etfw\">June 28, 2022</a></blockquote> <script async src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>\n<p>完全に準備不足でした。<br>\nツイート当初は「知り合いが 10 人くらい使ってくれて、Twitter や飲み会や勉強会でばったり会った時などにフィードバックをもらい、こじんまりと開発していけばいいや」と気楽に構えていたので Chrome ウェブストアにて拡張の審査は通していたものの <strong>Google の OAuth Consent Screen（Google アカウントでログインしアプリに権限を付与する同意画面のこと）の審査を通していませんでした。</strong> というのも審査を出さなくても<code>This app hasn't been verified</code>的な warning が出てくるだけで認証・認可はできるのでひとまずはそれでいいやと思っていました。</p>\n<p>しかしツイートが想像を遥かに超えて拡散されてしまい、審査を出してないセンシティブなスコープを利用するアプリのサインアップ上限 100 名の枠を一瞬で使い切ってしまい<code>This app is blocked</code>のエラー画面が表示されてしまいました。</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 668px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 36.52694610778443%; position: relative; bottom: 0; left: 0; background-image: url('data:image/svg+xml,%3csvg%20xmlns=\\'http://www.w3.org/2000/svg\\'%20width=\\'400\\'%20height=\\'146\\'%20viewBox=\\'0%200%20400%20146\\'%20preserveAspectRatio=\\'none\\'%3e%3cpath%20d=\\'M51%2034l-8%2014h31l-7-13-8-14-8%2013\\'%20fill=\\'%23d3d3d3\\'%20fill-rule=\\'evenodd\\'/%3e%3c/svg%3e'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/06e2cdde12d77f1a7d402c996559738c/5251b/2022-07-12-19-12-32.webp 167w,\n/static/06e2cdde12d77f1a7d402c996559738c/7390e/2022-07-12-19-12-32.webp 334w,\n/static/06e2cdde12d77f1a7d402c996559738c/7c056/2022-07-12-19-12-32.webp 668w,\n/static/06e2cdde12d77f1a7d402c996559738c/0a92e/2022-07-12-19-12-32.webp 1002w,\n/static/06e2cdde12d77f1a7d402c996559738c/7fa3c/2022-07-12-19-12-32.webp 1336w\"\n              sizes=\"(max-width: 668px) 100vw, 668px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/06e2cdde12d77f1a7d402c996559738c/21521/2022-07-12-19-12-32.png 167w,\n/static/06e2cdde12d77f1a7d402c996559738c/86d36/2022-07-12-19-12-32.png 334w,\n/static/06e2cdde12d77f1a7d402c996559738c/74866/2022-07-12-19-12-32.png 668w,\n/static/06e2cdde12d77f1a7d402c996559738c/d69c4/2022-07-12-19-12-32.png 1002w,\n/static/06e2cdde12d77f1a7d402c996559738c/9685e/2022-07-12-19-12-32.png 1336w\"\n            sizes=\"(max-width: 668px) 100vw, 668px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/06e2cdde12d77f1a7d402c996559738c/74866/2022-07-12-19-12-32.png\"\n            alt=\"2022 07 12 19 12 32\"\n            title=\"2022 07 12 19 12 32\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n    </span></p>\n<p><strong>一応補足すると何かやらかして Google からブロックされたわけではなくて、サインアップ 100 名を超えると 101 人目からサインアップがブロックされるためこの画面が表示されます。</strong></p>\n<blockquote class=\"twitter-tweet\" data-conversation=\"none\"><p lang=\"ja\" dir=\"ltr\">拡張を使おうとしてThis app is blockedと表示された方、現在新規のサインアップがブロックされています。上限緩和のためGoogleのレビューを通してるところでしてもう暫しお待ちください。 <a href=\"https://t.co/JpxNZ87s4C\">pic.twitter.com/JpxNZ87s4C</a></p>&mdash; Leko / れこ (@L_e_k_o) <a href=\"https://twitter.com/L_e_k_o/status/1542373098011258880?ref_src=twsrc%5Etfw\">June 30, 2022</a></blockquote> <script async src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>\n<p>完全に想定外でしたが、せっかく使いたいと言ってくれた方が使えないのは勿体無いので慌てて Google の審査を通しました。審査に時間がかかってしまいバズの旬は過ぎましたが、どなたでもサインアップできるようになったのであらためて審査の話を添えつつ作ったものの紹介記事を書きました。</p>\n<h2 id=\"拡張機能の紹介\" style=\"position:relative;\"><a href=\"#%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD%E3%81%AE%E7%B4%B9%E4%BB%8B\" aria-label=\"拡張機能の紹介 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>拡張機能の紹介</h2>\n<p>ここからが拡張機能の解説です。冒頭でも書きましたがこの Chrome 拡張は Google カレンダーのイベントの開始数分前に、イベントに紐づいたリモートミーティングの URL を自動で開くツールです。\nOSS として公開しており、GitHub のリポジトリはこちらです。</p>\n<p><a href=\"https://github.com/Leko/crx-gcal-url-opener\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://github.com/Leko/crx-gcal-url-opener</a></p>\n<h3 id=\"問題提起\" style=\"position:relative;\"><a href=\"#%E5%95%8F%E9%A1%8C%E6%8F%90%E8%B5%B7\" aria-label=\"問題提起 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>問題提起</h3>\n<p>コロナ禍になってからリモートでのミーティングが格段に増えたと思います。リモートミーティングに際してこのような問題ってないでしょうか。</p>\n<ul>\n<li>タスクを中断してカレンダーアプリや Google カレンダー web 版などを開き、当該のイベントをクリックして MTG に参加するの手数が多くて単純に面倒くさい</li>\n<li>私用アカウントと社用アカウントの２つでログインしており、ミーティング URL を開いた際にアカウントの切り替えが必要</li>\n<li>Google Meet でのミーティングかと思ってたら説明文の方に書いてある Zoom の URL に参加すべきだった</li>\n<li>ミーティング開始 10-5 分前くらいから参加待ちでただ待機している</li>\n<li>その待ち時間を使ってタスクを終わらせようとしたら時間を忘れて MTG の参加に遅れる</li>\n<li>タスクに取り組んでる際集中しすぎてカレンダーの通知に気づかず参加し忘れる</li>\n</ul>\n<h3 id=\"この拡張が解決すること\" style=\"position:relative;\"><a href=\"#%E3%81%93%E3%81%AE%E6%8B%A1%E5%BC%B5%E3%81%8C%E8%A7%A3%E6%B1%BA%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8\" aria-label=\"この拡張が解決すること permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>この拡張が解決すること</h3>\n<p>これらの問題を解決するため以下のアプローチで拡張機能を作りました。2 ヶ月ほど自分でテスト運用しましたがとても良く動作しており、もはやこれがないと仕事したくないレベルにヘビーユースしています。</p>\n<ul>\n<li>手数が多くて単純に面倒くさい\n<ul>\n<li>指定の時間になったら自動でミーティングのタブが開かれる</li>\n<li>最近のツールは参加の前に準備の画面が挟まってるため用意できていないまま参加してしまうことはない</li>\n</ul>\n</li>\n<li>ミーティング URL を開いた際にアカウントの切り替えが必要\n<ul>\n<li>Google Meet のみですが、認証した方の Google アカウントでミーティングが開かれるよう<code>authuser</code>というクエリパラメータを付与します</li>\n</ul>\n</li>\n<li>Google Meet かと Zoom の URL に参加すべきだった\n<ul>\n<li>イベントに両方の URL が設定されている場合 Zoom や MS Teams が優先されます（Google Meet の優先度が最低になります）</li>\n<li>そもそも Meet じゃないミーティングに Meet の URL を設定することが問題ではあるが、 GSuite の設定によっては明示的に off にしない限り自動で Meet のリンクが発行されてしまうことがあるためイベント作成時に気をつけないとこれが起こる</li>\n</ul>\n</li>\n<li>ミーティング開始 10-5 分前くらいから参加待ちでただ待機している\n<ul>\n<li>↓</li>\n</ul>\n</li>\n<li>その待ち時間を使ってタスクを終わらせようとしたら時間を忘れて MTG の参加に遅れる\n<ul>\n<li>↓</li>\n</ul>\n</li>\n<li>タスクに取り組んでる際集中しすぎてカレンダーの通知に気づかず参加し忘れる\n<ul>\n<li>時間になったら自動でタブが開くので、時間を気にする必要はない</li>\n<li>タブを開く際に他のウィンドウが最前面にあっても Chrome を最前面に表示するのでどのアプリを使っていようと強制的に作業が中断される</li>\n</ul>\n</li>\n</ul>\n<p>その他使い心地のためやっていることとしては以下があります。</p>\n<ul>\n<li>参加を辞退したイベントは無視する。未回答 or 参加と回答した時のみ対象</li>\n<li>リスケされることがあるため一定周期で最新状態を取得</li>\n<li>Zoom の<a href=\"https://support.zoom.us/hc/ja/articles/215062646-%E3%83%90%E3%83%8B%E3%83%86%E3%82%A3-URL-%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%81%AE%E3%82%AC%E3%82%A4%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">バニティ URL</a>にも対応</li>\n<li>Microsoft Teams にも対応（他の SaaS の要望あったら Issue 立ててください）</li>\n</ul>\n<p>紹介は以上となります。<a href=\"https://github.com/Leko/crx-gcal-url-opener/#readme\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">README</a>にインストールとセットアップ方法が書いてあるので是非お試しください。</p>\n<p>今後の展望として対応サービスの拡充や設定カスタマイズの解放などを検討していますが審査対応でほとんどのエネルギーを吸われてしまったので気が向いたら対応します。コントリビューションはいつでも歓迎です。</p>\n<h2 id=\"oauth-consent-screen-の審査について\" style=\"position:relative;\"><a href=\"#oauth-consent-screen-%E3%81%AE%E5%AF%A9%E6%9F%BB%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6\" aria-label=\"oauth consent screen の審査について permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>OAuth Consent Screen の審査について</h2>\n<p>最後に審査の苦労話です。これから審査に挑む方には役立つかもしれませんが読んでも面白くない内容だと思います…<br>\nこの Chrome 拡張は Google カレンダーを読み取る必要があるので <code>calendar.readonly</code> スコープが必要です。このスコープはプロフィールやメールアドレスの取得などとは異なりセンシティブなスコープと扱われるそうです。で、センシティブなスコープを取り扱う OAuth アプリの場合、Google による審査が必須となり、審査が通るまでは 100 人までしか認証できない制限がかかります。</p>\n<p>審査を開始したのがツイート当日なので Jun 28、審査が通ったのは Jul 15 でした。</p>\n<h3 id=\"審査の苦労話\" style=\"position:relative;\"><a href=\"#%E5%AF%A9%E6%9F%BB%E3%81%AE%E8%8B%A6%E5%8A%B4%E8%A9%B1\" aria-label=\"審査の苦労話 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>審査の苦労話</h3>\n<p>審査を通すためにもっとも苦労したのはコミュニケーションでした。「質問があったらメールに返信してね」と書いてあるので 4 回ほど定義や質問の意図について質問しましたが全て無視され、また「質問があったらメールに返信してね」と書かれた全く同じ内容の指摘が届いたり、申請内容ですでに対応済みのことを何度も指摘され 2-3 回”もうすでに要件を満たしてるよ”と伝えてやっと別の論点に移ってくれるという調子でした。<br>\nbot 等が機械的にチェックしメールを送信してるのか、もしくは申請内容は実は関係なく単なる忍耐力チェック＆人間判定をさせられていたのか、それとも「審査レビューに対し人間はなんと反論するか」の教師データを入力させられていたのではないかと思うほどにコミュニケーションが成立せず、加えて時差があるためメール 1 往復ごとに 2 日の速度で進行せざるを得ないため時間を割かれました。<br>\n（上記事項は審査を担当している Trust &#x26; Safety Team に全てフィードバックしました）</p>\n<p>もし今後センシティブなスコープを取り扱う何かを作る際には審査対応で時間がかかる可能性があることを考慮しておくと良いと思います。</p>\n<h3 id=\"審査によって変わったこと増えたもの\" style=\"position:relative;\"><a href=\"#%E5%AF%A9%E6%9F%BB%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E5%A4%89%E3%82%8F%E3%81%A3%E3%81%9F%E3%81%93%E3%81%A8%E5%A2%97%E3%81%88%E3%81%9F%E3%82%82%E3%81%AE\" aria-label=\"審査によって変わったこと増えたもの permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>審査によって変わったこと・増えたもの</h3>\n<p>とはいえ当然私の申請内容にも不備あったため新規ページを作ったり拡張のガワを変えたりしました。審査の前後でアプリのコア機能は一切変わっていません</p>\n<ol>\n<li>ホームページを作りました\n<ul>\n<li>URL: <a href=\"https://leko.jp/crx-gcal-url-opener/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://leko.jp/crx-gcal-url-opener/</a></li>\n<li>最初は GitHub の README や Chrome web ストアの URL を貼っていたのですが、ホームページの URL は Google Search Console にて所有権を確認できるドメインでホストされているものに限るそうで審査用にホームページを作りました</li>\n<li>上記にリダイレクトするだけの<code>leko.jp</code>の URL を設定・申請してみたのですが、申請内容の URL ではなくリダイレクトされた先の URL を見ているようでダメだったので大人しくページを作りました</li>\n<li>ホームページに Google Calendar API から取得可能な何の情報をどのように使いどう保持するのか？について明記したので拡張を利用する際に社内申請等がある場合は一読いただければと思います。↑ の URL は偽装ではないか（実際のプライバシーポリシーと異なるのではないか？）については、Google アカウントでの認証時に出てくる OAuth Consent Screen（この拡張に権限を付与する Google が提供する画面）にもこの URL へのリンクがあり、そこから同一のページにリンクされていることが確認できます</li>\n</ul>\n</li>\n<li>デモビデオを撮りました\n<ul>\n<li>URL: <a href=\"https://www.youtube.com/watch?v=9jz5ZO6XMpM\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://www.youtube.com/watch?v=9jz5ZO6XMpM</a></li>\n<li>見る価値ありません。審査用に撮った冗長で一切説明のない動画です</li>\n<li>認証の過程、実際に取得されたデータがどのように動作するか、申請内容の通りに反映されているか？を動画に撮り YouTube に上げ、<strong>全体公開</strong>する必要があります。限定公開だと弾かれました</li>\n</ul>\n</li>\n<li>ポップアップ内のログインボタンが変わりました\n<ul>\n<li>material-ui のアイコンを使っていたのですが Google のブランドガイドラインに抵触するとのことで公式のログインボタンを利用しました。UI 変えただけで機能は何も変わっていません</li>\n</ul>\n</li>\n<li>ポップアップ内にプライバシーポリシーへのリンクを追加\n<ul>\n<li>画面下部にリンクが増えてます。リンク先は前述のホームページ（のプライバシーへの取り組みセクション）です</li>\n</ul>\n</li>\n</ol>\n<p>実際にはこれだけの対応しかしてないため実際の作業としては数時間で終わる範囲内だったのですが、前述のコミュニケーション問題により審査が完了するまでにだいぶ時間がかかってしまいました。</p>\n<p>以上です。これから審査対応される方に役立てば幸いです。ぜひ拡張機能使ってみてください</p>","timeToRead":12,"frontmatter":{"title":"Googleカレンダーのイベントの開始数分前にリモートミーティングのURLを自動で開くChrome拡張を作った","tags":["JavaScript","Chrome extension"],"date":"July 05, 2022","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='284'%20viewBox='0%200%20400%20284'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%2096v96l2%202c3%202%205%207%205%208l-4%202c-3%201-3%202-3%205s0%204%201%203l4%202%202%202-3%203-4%203v46h91V65h249v4c0%202%200%203%202%203s2%201%202%203%200%203-2%202v2c-2%200-2%205-2%2098v98H113l2%203%201%204c0%202%207%202%20142%202h142v-14l1-142V0H0v96m0%201'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":1.409282700421941,"src":"/static/332f9bba3bf334a1b4aa37558c8c47e2/05d05/2022-07-12-19-12-10.png","srcSet":"/static/332f9bba3bf334a1b4aa37558c8c47e2/1ec58/2022-07-12-19-12-10.png 334w,\n/static/332f9bba3bf334a1b4aa37558c8c47e2/ccb4a/2022-07-12-19-12-10.png 668w,\n/static/332f9bba3bf334a1b4aa37558c8c47e2/05d05/2022-07-12-19-12-10.png 1080w","srcWebp":"/static/332f9bba3bf334a1b4aa37558c8c47e2/54d25/2022-07-12-19-12-10.webp","srcSetWebp":"/static/332f9bba3bf334a1b4aa37558c8c47e2/cd98f/2022-07-12-19-12-10.webp 334w,\n/static/332f9bba3bf334a1b4aa37558c8c47e2/7535d/2022-07-12-19-12-10.webp 668w,\n/static/332f9bba3bf334a1b4aa37558c8c47e2/54d25/2022-07-12-19-12-10.webp 1080w","sizes":"(max-width: 1080px) 100vw, 1080px"}}}}}},"pageContext":{"slug":"/crx-gcal-url-opener/","previous":{"fields":{"slug":"/look-back-on-2years-of-living-and-working-in-singapore/"},"frontmatter":{"title":"ClassDoを退職し日本に帰国しYuimediに入社しました","tags":[]}},"next":{"fields":{"slug":"/ctonight-2022/"},"frontmatter":{"title":"CTO Night & Day 2022に参加してきた","tags":null}}}},
    "staticQueryHashes": ["2585454260","2954598359"]}