Google Cloud SDK cURL облако не разрешает хост

Я пытаюсь настроить Google Cloud Api на Windows. Я трачу много часов, чтобы решить эту проблему, прочитать все связанные вопросы, ничего не помогает! Сначала я установил переменную

set GOOGLE_APPLICATION_CREDENTIALS="C:\Users\Desktop\directory\filename.json"

curl -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
  -H "Content-Type: application/json; charset=utf-8" \
   --data "{
    'input':{
    'text':'Android is a mobile operating system developed by Google,
     based on the Linux kernel and designed primarily for
     touchscreen mobile devices such as smartphones and tablets.'
    },
    'voice':{
     'languageCode':'en-gb',
     'name':'en-GB-Standard-A',
     'ssmlGender':'FEMALE'
    },
    'audioConfig':{
     'audioEncoding':'MP3'
    }
  }" "https://texttospeech.googleapis.com/v1/text:synthesize" > synthesize-text.txt

Как описано в документации Google. Но в командной строке

 curl: (6) облако не разрешает хост: auth
curl: (6) облако не разрешает хост: application-default
curl: (6) облако не разрешает хост: print-access-token

Покажите мне эту ошибку. В synthesize-text.txt написано, что код ошибки 401.

Как я могу это исправить. Любую помощь ценю.

Редактировать: Когда я извиняюсь за

 gcloud auth application-default команда print-acces-token 
Возвращает Переменная окружения не существует! Но я прошу прощения за заданную команду. Что я делаю неправильно?

1 ответ

Решение

Это связано с тем, что Windo ws не принимает $(gcloud auth application-default print-access-token) использование.

Вы можете попробовать записать вывод команды для токена доступа для печати в файл. Например:

gcloud auth application-default print-access-token > token.txt

Затем вы можете назначить это переменной среды:

set /p token=<token.txt

И попробуйте выполнить запрос Text-to-Speech API следующим образом:

curl -H "Authorization: Bearer "%token% \
  -H "Content-Type: application/json; charset=utf-8" \
   --data "{
    'input':{
    'text':'Android is a mobile operating system developed by Google,
     based on the Linux kernel and designed primarily for
     touchscreen mobile devices such as smartphones and tablets.'
    },
    'voice':{
     'languageCode':'en-gb',
     'name':'en-GB-Standard-A',
     'ssmlGender':'FEMALE'
    },
    'audioConfig':{
     'audioEncoding':'MP3'
    }
  }" "https://texttospeech.googleapis.com/v1/text:synthesize" > synthesize-text.txt

Кроме того, вы можете попробовать использовать ключи API для ваших запросов. Например:

curl -H "Content-Type: application/json; charset=utf-8" \ 
--data "{ 
'input':{ 
'text':'Android is a mobile operating system developed by Google, 
based on the Linux kernel and designed primarily for 
touchscreen mobile devices such as smartphones and tablets.' 
}, 
'voice':{ 
'languageCode':'en-gb', 
'name':'en-GB-Standard-A', 
'ssmlGender':'FEMALE' 
}, 
'audioConfig':{ 
'audioEncoding':'MP3' 
} 
}" "https://texttospeech.googleapis.com/v1/text:synthesize?key=YOUR_API_KEY" > synthesize-text.txt

Я получал ту же ошибку при преобразовании речи в текст. Используя ваш совет, я немного изменил команду:

gcloud auth application-default print-access-token > token.txt

set /p token=<token.txt

curl -H "Content-Type:application/json" --data @filepath/myjsonfile.json "https://speech.googleapis.com/v1/speech:longrunningrecognize?key=myKey" > synthesize-text.txt
Другие вопросы по тегам