В Google App Engine (GAE), написанном на Python.
Я пытаюсь создать http-сообщение для API-интерфейса облако-речь-текст и использую источник аудио URI (Google Bucket Object Bucket Objects).
Я использую следующие заголовки;
Authorization: BASIC encoded_base64(username:password)
Но я по-прежнему получаю сообщение об ошибке ниже:
{
"ошибка": {
«код»: 403,
"message": "Анонимный абонент не имеет доступа к storage.objects.get к bucket_of_secrets / four_score_seven_years.flac.",
"status": "PERMISSION_DENIED"
}
}
Итак, у меня есть пара вопросов;
- Работает ли BASIC Authorization Header в Google HTTP API?
- Что
username:password
мне следует использовать? Это моя учетная запись GCP и пароль? т.е. handsome_dude@gmail.com:deluded_fool
Где handsome_dude@gmail.com
- имя пользователя, а deluded_fool
- пароль.
Я пытался установить объекты корзины как общедоступные для чтения, и, конечно, вызов http работает ... но я бы предпочел не устанавливать общедоступные объекты для своих групповых сообщений.
Вот пример запроса Curl:
curl -X POST
https://speech.googleapis.com/v1/speech:longrunningrecognize?key=<secret_api_key> -d @sample.json -H "Content-Type: application/json, Authorization: Basic base64encodedusername:password"
Вот фрагмент кода в моем коде Python, использующий urlfetch:
url_post = urlfetch.fetch(url=speech_to_text_url_post, payload=json.dumps(data_to_post), method=urlfetch.POST, headers={"Content-Type" : "application/json", "Authorization" : "Basic "+encoded_user_password})