Javascript 使用getIdToken作为Google Sheet API的授权令牌

Javascript 使用getIdToken作为Google Sheet API的授权令牌,javascript,firebase,google-sheets,google-api,Javascript,Firebase,Google Sheets,Google Api,我正在打电话给: https://sheets.googleapis.com/v4/spreadsheets/GOOGLE_SHEET_ID:batchUpdate 例如: fetch( `https://sheets.googleapis.com/v4/spreadsheets/GOOGLE_SHEET_ID:batchUpdate`, { 方法:“张贴”, 标题:{ “内容类型”:“应用程序/json”, 授权:`Bearer${bearerToken}`, }, 正文:JSON.strin

我正在打电话给:
https://sheets.googleapis.com/v4/spreadsheets/GOOGLE_SHEET_ID:batchUpdate

例如:

fetch(
`https://sheets.googleapis.com/v4/spreadsheets/GOOGLE_SHEET_ID:batchUpdate`,
{
方法:“张贴”,
标题:{
“内容类型”:“应用程序/json”,
授权:`Bearer${bearerToken}`,
},
正文:JSON.stringify({
要求:[
{
重复单元:{
范围:{
startColumnIndex:0,
endColumnIndex:1,
startRowIndex:0,
endRowIndex:1,
张号:0,,
},
单元格:{
userEnteredValue:{
数值:10,
},
},
字段:“*”,
},
},
],
}),
}
);
我正在尝试使用firebase auth获取承载令牌,如下所示:

firebase.auth().onAuthStateChanged(用户=>{
如果(用户){
user.getIdToken().then(token=>setBearerToken(token))
}
});
问题是,使用该令牌我得到了这个响应(是的,我检查了BealerToken是否正确设置):


Id令牌有效吗?如何从Firebase Auth获取适当的访问令牌?

如果要调用google sheets API,则需要从google授权服务器获取访问令牌。firebase是否从Google授权服务器间接获取承载令牌?其次,承载令牌和身份令牌是两个独立的概念。Oauth ID令牌用于获取有关用户的信息,但访问令牌可以传递给资源API。我怀疑您正在向API传递一个完全无关的令牌

{
  "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.",
    "status": "UNAUTHENTICATED"
  }
}