Open3

GAS

tatatsurutatatsuru

結果

supabaseとgoogle 0Authを活用して、gasをAPIで動かすことに成功。

GAS側は

function test() {
  return "done fucntion"
}

として、returnしている。

下記でsupabaseで実際にログインした後に得られるprovider(google)のtokenを得る

const accessToken = computed(() => {
  const token = localStorage.getItem("localStorageId"); //ログイン後にlocalStorageにtokenなどが保存されているので、そこから拝借する。
  return JSON.parse(token!).provider_token;
});

下記でgasを動かすことができ、resultにはGASでreturnしているものが含まれている。

const executionGoogleAppScript = () => {
  fetch(
"実行可能 API", //ここはgasをデプロイした時に得られるもの
    {
      method: "POST",
      headers: {
        Authorization: "Bearer " + accessToken.value,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        function: "test",
      }),
    }
  )
    .then((res) => {
      res.json().then((data) => console.log(data.response.result));
    })
    .catch((err) => {
      console.log(err);
    });
};
tatatsurutatatsuru

slackAPIとGAS

GAS上では呼び出せていたslack APIをlocalhostからGAS APIを叩いてslack APIを動かし、userlistを取ろうとしたらできなかった。

IPアドレスによる制限があり、localのIPアドレスとIPv6には対応してないので、そもそも開発環境をどうするかが課題。

https://api.slack.com/authentication/best-practices#ip_allowlisting