Google apps script 如何从谷歌应用程序脚本授权谷歌语音到文本?

Google apps script 如何从谷歌应用程序脚本授权谷歌语音到文本?,google-apps-script,oauth,jwt,service-accounts,google-cloud-speech,Google Apps Script,Oauth,Jwt,Service Accounts,Google Cloud Speech,我正在尝试从应用程序脚本执行谷歌语音到文本。不幸的是,我找不到应用程序脚本或纯HTTP的任何示例,所以我可以使用简单的UrlFetchApp运行它 我创建了一个服务帐户,设置了一个启用了语音到文本api的项目,并且能够 使用命令行示例成功运行识别 curl-s-H“内容类型:application/json”\ -H“Authorization:Bearer”$(gcloud auth应用程序默认打印访问令牌)\ \ -d@sync-request.json 我可以很容易地将其转换为UrlFet

我正在尝试从应用程序脚本执行谷歌语音到文本。不幸的是,我找不到应用程序脚本或纯HTTP的任何示例,所以我可以使用简单的UrlFetchApp运行它

我创建了一个服务帐户,设置了一个启用了语音到文本api的项目,并且能够 使用命令行示例成功运行识别

curl-s-H“内容类型:application/json”\ -H“Authorization:Bearer”$(gcloud auth应用程序默认打印访问令牌)\ \ -d@sync-request.json

我可以很容易地将其转换为UrlFetchApp调用,但我不知道如何生成由创建的访问令牌

gcloud auth应用程序默认打印访问令牌

有没有办法使用服务帐户凭据从应用程序脚本获取它


或者有没有其他方法从应用程序脚本中对语音进行身份验证和访问文本?

通过服务帐户检索访问令牌的等效方法是通过。该库处理JWT令牌的创建


示例

使用主的答案,我能够为我的案例构建一个getToken解决方案

`

`

转录本身的代码是

function transcribe(){
  var payload = {
    "config": {
      "encoding" : "ENCODING_UNSPECIFIED",
      "sampleRateHertz": 48000,
      "languageCode": "en-US",
      "enableWordTimeOffsets": false
    },
    "audio": {
      content: CONTENT
    }
  };

  var response = UrlFetchApp.fetch(
    "https://speech.googleapis.com/v1/speech:recognize", {
      method: "GET",
      headers: {
        "Authorization" : "Bearer " + getService().getAccessToken()
      },
      contentType: "application/json",
      payload: JSON.stringify(payload),
      muteHttpExceptions: true
    });  

  Logger.log(response.getContentText());

}
function transcribe(){
  var payload = {
    "config": {
      "encoding" : "ENCODING_UNSPECIFIED",
      "sampleRateHertz": 48000,
      "languageCode": "en-US",
      "enableWordTimeOffsets": false
    },
    "audio": {
      content: CONTENT
    }
  };

  var response = UrlFetchApp.fetch(
    "https://speech.googleapis.com/v1/speech:recognize", {
      method: "GET",
      headers: {
        "Authorization" : "Bearer " + getService().getAccessToken()
      },
      contentType: "application/json",
      payload: JSON.stringify(payload),
      muteHttpExceptions: true
    });  

  Logger.log(response.getContentText());

}