搜索

首页  >  问答  >  正文

使用Vue / TypeScript如何与Google身份验证服务JavaScript SDK配合使用?

我正在尝试在我的 Vue / Quasar / TypeScript 应用中使用新的 Google Identity Services JavaScript SDK 授权某些 Google API。

根据文档,我已在 index.template.HTML 文件的标头中加载了 Google 3P 授权 JavaScript 库,如下所示:

<script src="https://accounts.google.com/gsi/client" onload="console.log('TODO: add onload function')">  
</script>

现在在 Vue 组件中我有这个:

<template>
  <v-btn
    class="q-ma-md"
    design="alpha"
    label="Connect Google Calendar"
    @click="handleGoogleCalendarConnect"
  />
</template>

<script setup lang="ts">
import VBtn from 'src/components/VBtn.vue';

const client = google.accounts.oauth2.initCodeClient({ // <-- TypeScript Error Here
  client_id:
    'MY_CLIENT_API_KEY_GOES_HERE',
  scope: 'https://www.googleapis.com/auth/calendar.readonly',
  ux_mode: 'popup',
  callback: (response: any) => {
    const xhr = new XMLHttpRequest();
    xhr.open('POST', code_receiver_uri, true);
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    // Set custom header for CRSF
    xhr.setRequestHeader('X-Requested-With', 'XmlHttpRequest');
    xhr.onload = function () {
      console.log('Auth code response: ' + xhr.responseText);
    };
    xhr.send('code=' + code);
  },
});

const handleGoogleCalendarConnect = () => {
  client.requestCode();
};
</script>

但是我在“google”上收到 TypeScript 错误,内容为:Cannot find name 'google'。 ts(2304)

也许是因为我缺少 Google Identity Services JavaScript SDK 的类型?如果是这样,在哪里可以找到它们?

或者问题可能是别的什么?

P粉083785014P粉083785014250 天前429

全部回复(1)我来回复

  • P粉996763314

    P粉9967633142024-03-26 21:35:11

    找到正确类型的包:

    npm 我@types/google.accounts

    这将消除错误。

    回复
    0
  • 取消回复