API Google Plus - неверный ключ

Я пытаюсь использовать javascript sdk для входа в систему oauth и доступа к API Google Plus. Здесь практически тот же код: https://developers.google.com/api-client-library/javascript/features/authentication

В моей консоли firebug это URL-адрес, который отправляет запрос api на: https://content.googleapis.com/discovery/v1/apis/plus/v1/rest?fields=servicePath%2Cresources%2Cparameters%2Cmethods&pp=0&key= {ключ}

Это ошибка, которая возвращается: {"error": {"errors": [{"domain": "usageLimits", "reason": "keyInvalid", "message": "Bad Request"}], "code" : 400, "message": "Плохой запрос"}}

У меня есть: 1. Добавлен Google Plus Api в мой проект 2. Созданы учетные данные oauth 3. Настроен экран моего согласия

Однако я все еще получаю сообщение об ошибке.


person tnguyen444    schedule 23.10.2014    source источник
comment
{key} то, что вы действительно видите в запросе? Или вы заменили свой фактический ключ этим для этого вопроса?   -  person abraham    schedule 24.10.2014
comment
Я заменил ключ на этот вопрос   -  person tnguyen444    schedule 25.10.2014


Ответы (1)


Причина в том, что у вас есть ключ, определенный в запросе. Как указано в документации API обнаружения (https://developers.google.com/discovery/v1/getting_started#before_starting):

"Служба обнаружения API предоставляет только общедоступные методы, не требующие аутентификации. Кроме того, в отличие от запросов, которые вы делаете ко многим другим API Google, запросы, которые вы делаете к API службы обнаружения, не должны включать ключ API. Если вы предоставляете key, запросы не будут выполнены. Такое поведение гарантирует, что вы случайно не раскроете свой ключ API при распространении инструментов, основанных на службе обнаружения API Google ".

Таким образом, вы можете решить проблему, полностью удалив ключ из своего запроса.

Если вы используете клиент Google javascript для этого и ошибка возникает при загрузке дополнительных API, сначала необходимо отключить ключ:

gapi.client.setApiKey( null );          
gapi.client.load( "plus", "v1", function( apiresponse ) { ... } );

Если для другой функции позже потребуется ключ, вам придется установить его снова.

Чтобы избежать постоянной установки и сброса ключа, я загружаю все необходимые API перед аутентификацией, затем устанавливаю ключ API, и поэтому проблема больше не возникает.

person j0ffe    schedule 23.05.2015