Google Calendar API v3でMeetのURLを発行する。

Right-Click-to-Calendar v3.9.2をリリースしました。
Right-Click to Calendar – Chrome ウェブストア
カレンダーに登録したときにMeetsのURLも発行してほしいと要望がきたので対応しました。カレンダーのAPIでMeetのURLが発行できるのを今回初めて知りました。Meet無料でも使えるのはありがたいですね。
Events: insert | Calendar API | Google Developers
Create Events | Calendar API | Google Developers

const body = {
  "start": {
    "dateTime": "2020-09-12T02:05:00.000+09:00"
  },
  "end": {
    "dateTime": "2020-09-12T02:05:00.000+09:00"
  },
  "conferenceData": {
    "createRequest": {
      "requestId": Math.random().toString(32).substring(2), // ランダムな文字列
      "conferenceSolutionKey": {
        "type": "hangoutsMeet"
      }
    }
  }
};

const xhr = new XMLHttpRequest();
xhr.onloadend = () => {
  if (xhr.status === 200) {
    const data = JSON.parse(xhr.responseText);
    if (data.conferenceData.createRequest.status.statusCode === "success") { // 発行されたMeetのURL取得
      console.log(data.conferenceData.entryPoints[0].uri)
    }
  }
};
xhr.open('POST',
  "https://www.googleapis.com/calendar/v3/calendars/" + カレンダーのID + "/events?conferenceDataVersion=1", // conferenceDataを送信するためのフラグを有効にする
  true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
xhr.send(JSON.stringify(body));

カレンダー共有すれば人を招待する必要はないし、URLを発行する機能だけつけました。

Chromeの拡張、リリース時の審査に1ヶ月くらいかかるときいていたのですが、今回は1営業日で完了しました。よかったです。
次のリリースあるときはNuxt.jsで実装しなおす予定です。

あと、今WordPress捨てようと思っていて、Gatsbyに移行するために記事をmdに落とし込むところまではやったのですが、今使っているテンプレートをGatsbyに変換するところで詰まったので、時間をかけて頑張ろうと思います。Reactもやっていこう。

この記事コナンのエピソードワン見ながら書いてたのですが、やっぱり新一のどこがいいのかわかんねえなと思いました。主要人物の紹介違和感なく全部ぶち込んでて構成上手でしたね。すごい。