是否可以使用来自 firebase 的访问令牌来授权 YouTube API?

Is it possible to use the access token from firebase to authorize YouTube API?

我正在尝试 post 使用 YouTube API 使用 ReactJS 对 YouTube 视频发表评论。但是我没有使用 gapi 进行 signInWithGoogle,而是使用 firebase 和 firebase 返回的 access_token。

我的代码看起来像这样。

const url = `https://youtube.googleapis.com/youtube/v3/commentThreads?key=${MY_API_KEY}&part=snippet`

const requestOptions = {
  method: "POST",
  headers: {
    Authorization: `Bearer ${ACCESS_TOKEN}`,
    'Content-Type': 'application/json',
    Accept: 'application/json'
  }
  body: JSON.stringify({
    "snippet": {
      "videoId": "[SOME_VIDEO_ID]",
      "topLevelComment": {
        "snippet": {
          "textDisplay": "test",
        }
      }
    }
  })
}

fetch(url, requestOptions)
  .then(res => res.json())
  .then(data => console.log(data))
  .catch(err => console.log(err))

但是它抛出错误说

{
    "error": {
        "code": 401,
        "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
        "errors": [
            {
                "message": "Invalid Credentials",
                "domain": "global",
                "reason": "authError",
                "location": "Authorization",
                "locationType": "header"
            }
        ],
        "status": "UNAUTHENTICATED"
    }
}

这里有什么问题?

我没有使用 firebase,而是使用了一个名为 react-google-loginnpm 包,它提供了 access_token。我使用该访问令牌授权 YouTube API,效果很好。

https://www.npmjs.com/package/react-google-login