如何在应用程序脚本gmail中的请求标头中使用具有身份验证的Firebase API用户添加在项目上

问题描述

我有一个Firebase项目,可以在其中登录google。现在,我想在应用程序脚本中调用firebase API来创建Gmail插件。我可以使用UrlFetchApp.fetch调用在请求标头中不需要Id令牌的API,但我也想调用在请求标头中包含Id令牌的API。 我使用以下方法获取Firebase idToken,但出现以下错误

[20-09-18 23:15:57:291 PDT] {
  "error": {
    "code": 400,"message": "INVALID_IDP_RESPONSE : Invalid Idp Response: access_token audience is not for this project","errors": [
      {
        "message": "INVALID_IDP_RESPONSE : Invalid Idp Response: access_token audience is not for this project","domain": "global","reason": "invalid"
      }
    ]
  }
}
function getGoogleIDToken()
{
  var firebaseConfig = {
  apiKey: "",authDomain: "",databaseURL: "",projectId: "",storageBucket: "",messagingSenderId: "",appId: "",};

    var res = UrlFetchApp.fetch('https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key='+firebaseConfig.apiKey,{
        method: 'POST',payload: JSON.stringify({
            requestUri: 'https://'+firebaseConfig.authDomain,postBody: 'access_token='+ScriptApp.getoAuthToken()+'&providerId=google.com',returnSecuretoken: true,returnIdpCredential: true
        }),contentType: 'application/json',muteHttpExceptions: true
    });
    Logger.log(res);
    var responseData = JSON.parse(res);

    idToken = responseData.idToken;

    Logger.log('Google ID Token: ');
    Logger.log(idToken);

    return idToken;
}

解决方法