前回の記事で、自社の打ち合わせ予約をLINEに移し、Google Meetの会議URLまで自動で届くようにした話を書きました。そのときは「オンラインはZoomではなくGoogle Meetにした」と決めたのですが、あれから1週間で方針を少し変えました。Zoomも選べるようにしたんです。理由は単純。お取引先の都合です。
結論から書きます。Zoomの会議を予約ごとに自動で作ってLINEに届けるところまでは、実装した日のうちに動きました。ところが、お客様がLINEでそのURLをタップすると止まります。「Zoom may not be supported on your browser」という画面です。原因はZoomでも予約の仕組みでもなく、LINEの中に入っている簡易ブラウザでした。直したのはURLの末尾に付ける合図ひとつです。
1日半の記録です。同じ仕組みを自社に入れようとしている方が、同じ場所で止まらないように書いておきます。
きっかけは、お取引先の「うちはZoomで」
Google Meetに寄せていたのは、当社のGoogleカレンダーとつながっていて会議URLが自動で出るからでした。ただ、お取引先の中には社内のツールがZoomで統一されている会社があります。「Meetのリンクを送られても、会社のパソコンでは開けない」というケースは、実際に起きます。
それなら、選べればいい。予約のときにお客様が「Meet」か「Zoom」かを決める。選んだ方の会議URLが、確定のLINEと一緒に届く。仕組みとしてはMeetのときと同じ形にできるはずでした。
最初に:この記事に出てくる画面は3つです
- お客様が見る画面:LINEの予約ページと、確定後に届くメッセージ
- 当社が見る画面:Googleカレンダーと、担当者のLINEに届く「要対応」の連絡
- 設定の画面:Zoomの管理ページ(会議を自動で作るための鍵を発行する場所)
用語は3つだけ
- 参加URL:Zoomの会議に入るためのリンク。今回は予約ごとに別のURLを作ります
- アプリ内ブラウザ:LINEやInstagramの中でリンクをタップしたときに開く、簡易的なブラウザ。SafariやChromeとは別物です
- サーバー間の鍵(Server-to-Server OAuth):人がログインしなくても、当社の予約の仕組みがZoomに「会議を作って」と頼めるようにする鍵。Zoomの管理ページで発行します
できあがった流れ

お客様がLINEの予約ページで「オンライン(Zoom)」の枠を選ぶと、裏側でZoomの会議が自動で作られ、その予約だけの参加URLがLINEに届きます。Googleカレンダーには予定が入り、場所の欄に同じURLが書かれます。前日と当日のリマインドにもURLが載ります。キャンセルや日程変更があれば、Zoomの会議も自動で消して作り直します。
URLを作れなかったときや、お客様に送れなかったときは、担当者のLINEに「要対応」の連絡が届くようにしました。すでにURLができているのに送信だけ失敗した場合は、そのURLを添えて届きます。「発行できませんでした」とだけ言われると、別のURLを作ってしまいそうになるからです。
Zoom側でやったこと(実際の手順)
会議を自動で作るには、Zoomに「この仕組みからの依頼は受けていい」と登録する必要があります。Zoomの開発者向けページ(App Marketplace)で、次の順に進めました。
- 「Build App」から Server-to-Server OAuth を選び、アプリ名を付ける(当社は「LINE Harness」)
- 表示される3つの値(Account ID / Client ID / Client Secret)を控える
- 「Scopes」で会議の作成と削除の2つだけを許可する(
meeting:write:meeting:adminとmeeting:delete:meeting:admin) - 「Activation」で有効にする
かかったのは5分ほど。控えた3つの値は、予約の仕組みが動いているサーバーの「秘密の値」の置き場に入れます。ここで注意したのは、値を画面やチャットに出さないこと。当社では、値の文字数だけを確かめて「入っている」ことを確認する運用にしています。
なお、当社のZoomは有料契約です。無料プランでも同じ仕組みは作れますが、3人以上の会議は40分で切れます。1対1の打ち合わせなら制限はありません。
つまずいたところ
順番に3つありました。
1. 予約画面で「担当を選択」が空っぽになった

Zoom用のメニューを追加して、いざスマホで予約を試すと、メニューを選んだ次の「担当を選択」に誰も出てきません。次へ進むボタンも押せない。固まりました。
原因は紐づけ忘れ。新しいメニューに担当者(私)を結んでいませんでした。予約の仕組みでは「メニュー」と「担当者」が別々の台帳になっていて、どの担当者がどのメニューを受けられるかを結ぶ台帳がもう1枚あります。メニューを足したとき、その結びつきを足し忘れたわけです。
直すのは1行です。1分で終わります。ただ、これは仕組みを作った側にしか分からない止まり方で、お客様からは「予約できないページ」にしか見えません。前回の記事で「入口のリンクを3日間間違えていた」と書きましたが、今回も公開前に自分で予約を通したから見つかりました。新しい選択肢を足したら、必ず自分で最後まで予約する。これは前回から引き続きの教訓です。
2. URLは届いたのに、タップすると開かない
担当を直して予約をやり直すと、確定のLINEに参加URLが届きました。ここまでは狙いどおり。ところがタップすると、こうなりました。

「このブラウザではZoomに対応していないかもしれません。下のリンクをコピーしてSafariやChromeに貼ってください」という内容です。
これはLINEの中で開く簡易ブラウザ(アプリ内ブラウザ)の話です。Zoomの参加ページは、SafariやChromeなら「Zoomアプリで開く」に橋渡ししてくれますが、アプリ内ブラウザではその橋渡しができません。Google Meetのときにこの問題が出なかったのは、Meetの参加ページがアプリ内ブラウザでも動くからです。Zoomに切り替えて初めて表に出ました。
対処は合図ひとつ。LINEが公式に用意しているものです。URLの末尾に openExternalBrowser=1 を付けると、LINEはそのリンクを外部のブラウザ(SafariやChrome)で開きます。LINEの開発者向けの案内に「対象のURLを外部ブラウザで開きます」と書かれている、正規の使い方です。

当社では、お客様に送るメッセージとリマインドに載せるURLにだけこの合図を付けました。台帳に保存する元のURLは変えていません。あわせて、Zoomのときはメッセージの末尾に「Zoomアプリか Safari・Chrome で開きます」と一文を添えるようにしました。合図が効かない環境が万一あっても、お客様が自分で開けるようにです。
直したあと、もう一度予約を通しました。タップすると、そのままZoomの参加画面へ。これで届きます。
3. 「消えたかどうか」をZoom側で確かめられなかった
テストの予約を取り消したあと、Zoomの会議がちゃんと消えたかを確認しようとしました。ところが、Zoomに「この会議を見せて」と問い合わせると断られます。見せてくれない。
理由は、鍵に許可したのが「作る」と「消す」の2つだけで、「読む」を付けていなかったから。消す権限があっても、消えたことを見る権限は別なんです。今回は、当社の台帳側で参加URLが空になっていることをもって確認しました(消す処理が失敗すると、台帳のURLは空にならない作りにしてあります)。
これ自体は失敗ではありません。権限を最小限にした結果です。ただ「確認の手段」まで含めて権限を決めると、あとで楽です。
つまずき早見表
| 起きたこと | 原因 | 対処 |
|---|---|---|
| 予約画面で「担当を選択」に誰も出ない | 新しいメニューに担当者を紐づけていない | メニューと担当者の結びつきを1行追加する |
| 参加URLをタップすると「Zoom may not be supported on your browser」 | LINEのアプリ内ブラウザで開いている | URLの末尾に openExternalBrowser=1 を付ける(LINE公式の合図) |
| 取り消したZoomの会議が消えたか確かめられない | 鍵に「読む」権限を付けていない | 台帳側のURLが空になったかで確認する。または読む権限を足す |
| 会議URLが作れなかった/お客様に送れなかった | Zoom側の一時的な不調など | 担当者のLINEに「要対応」が届く。発行済みURLがあれば添えて届く |
確認のしかた
- 自分のLINEから「オンライン(Zoom)」で予約を入れ、確定のメッセージに参加URLが載っているか
- そのURLをタップして、コピーの指示ではなくZoomの参加画面(またはZoomアプリ)に進むか
- Googleカレンダーの予定の「場所」に同じURLが入っているか
- 予約を取り消して、カレンダーの予定が消え、台帳の参加URLが空になるか
テストが終わった予約は取り消す。当社は2回試して、2回とも消しました。
正直に書いておくこと
openExternalBrowser=1はLINEの案内によると、LINEのミニアプリ(LIFF)の中のリンクでは効きません。今回はLINEのトーク画面に届くメッセージのリンクなので効きました。予約ページの中にURLを表示する作りにするなら、別の対処が要ります- Zoomの会議は当社のアカウントで作られます。お客様側のZoomは、無料でも有料でも参加できます
- 相手の会社のセキュリティ設定によっては、外部の会議URL自体が開けないことがあります。その場合はこちらでは対処できません
- ここに書いた作業は、当社が使っている予約の仕組み(オープンソースのLINE Harnessに当社が手を加えたもの)を前提にしています。市販の予約ツールでZoomと連携する場合、設定の場所は違います
要点3行
- Zoomの会議を予約ごとに自動で作ってLINEに届ける仕組みは、Zoomの管理ページで鍵を発行すれば作れる
- LINEの中でZoomのURLを開くと止まる。URLの末尾に
openExternalBrowser=1を付けて外部ブラウザで開かせる - 新しい選択肢を足したら、自分で最後まで予約を通す。担当の紐づけ忘れはお客様からは「予約できないページ」にしか見えない
当社の予約ページでは、Google Meet・Zoom・訪問の3つから選べるようになっています。仕組みそのものについてのご相談も、この予約から受け付けています。