Google Cloud SDK cURL cloud не разрешает хост

Я пытаюсь настроить 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) cloud not resolve host: auth
curl: (6) cloud not resolve host: application-default
curl: (6) cloud not resolve host: print-access-token

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

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

Edit: When I excuse the

gcloud auth application-default print-acces-token command
Returns Environment variable does not exist! But ı excute the set command. What am I doing wrong ?


person Çağatay Kaya    schedule 16.10.2018    source источник


Ответы (2)


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

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

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

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

set /p token=<token.txt

И попробуйте выполнить запрос 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
person F10    schedule 16.10.2018
comment
Я не могу получить доступ к json-файлу, возвращаемая переменная среды не существует - person Çağatay Kaya; 16.10.2018
comment
Вам нужно устанавливать его каждый раз, когда вы открываете новое окно CMD, или вы можете создать пользовательская переменная среды - person F10; 16.10.2018
comment
Я устанавливаю файл json каждый раз, когда открываю окно mcd, но когда я пытаюсь получить доступ к облаку, он возвращает переменную среды, не выходит. Я устанавливаю переменную, как показано в вопросе. Пользовательское окружение тоже не работает ... - person Çağatay Kaya; 16.10.2018
comment
Вы тоже уже выполнили команду gcloud init? Это необходимо для авторизации доступа с использованием учетных данных вашей учетной записи. Если у вас есть время, вы можете присоединиться к этому чату, чтобы обсудить свой сценарий. - person F10; 16.10.2018

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

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
person Thasina Tabashum    schedule 04.09.2020