2014-09-05 2 views
1

Я пытаюсь настроить проверку MyGlass для своего приложения GDK, как в Google Glass GDK Authentication using PHP. Пользователь регистрируется на моем сайте через MyGlass, проходит проверку подлинности, а затем я пытаюсь вставить учетную запись, используя Mirror API.Проверка подлинности MyGlass «Недопустимое значение» с Java-примером и библиотеками PHP

Я следую за «рабочим» примером PHP, описанным в http://goo.gl/DVggO6. Тем не менее, я всегда получаю сообщение об ошибке с сервера Google API с сообщением «Недопустимое значение» без дополнительной информации.

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

В дополнение к предоставлению решения, может ли кто-нибудь предложить методы устранения неполадки? Лучше всего запустить его на локальном веб-сервере и использовать Wireshark для проверки тела POST?


Google_Service_Exception with message Error calling POST https://www.googleapis.com/mirror/v1/accounts/bfb41d5c745d***/com.lumilogger.glassware/username%40email.com?key=********: (400) Invalid Value in /home7/tallyhea/public_html/Google/Http/REST.php:81 

Stack trace: 
#0 /home7/tallyhea/public_html/Google/Http/REST.php(44): Google_Http_REST::decodeHttpResponse(Object(Google_Http_Request)) 
#1 /home7/tallyhea/public_html/Google/Client.php(503): Google_Http_REST::execute(Object(Google_Client), Object(Google_Http_Request)) 
#2 /home7/tallyhea/public_html/Google/Service/Resource.php(195): Google_Client->execute(Object(Google_Http_Request)) 
#3 /home7/tallyhea/public_html/Google/Service/Mirror.php(409): Google_Service_Resource->call(insert, Array, Google_Service_...) 
#4 /home7/tallyhea/public_html/functions.php(55): Google_Service_Mirror_Accounts_Resource->insert(bfb41d5c745***, com.lumilogger...., [email protected], Object(Google_Service_Mirror_Account)) 
#5 /home7/tallyhea/public_html/glass_oauth.php(71): insert_account(Object(Google_Service_Mirror), bfb41d5c74***, [email protected]) 
#6 {main}" 

И ответ JSON от сервера довольно загадочная:

body: { "error": { "errors": [ { "domain": "global", "reason": "invalid", "message": "Invalid Value" } ], "code": 400, "message": "Invalid Value" } } 

Я также попытался точный пример Java, показанный на MyGlass Гласс аутентифицировать страницу и получил ту же ошибку:

Invoking createAccount() 
com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request 
{ 
    "code" : 400, 
    "errors" : [ { 
    "domain" : "global", 
    "message" : "Invalid Value", 
    "reason" : "invalid" 
    } ], 
    "message" : "Invalid Value" 
} 
    at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:145) 
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113) 
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40) 
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:312) 
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1049) 
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410) 
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343) 
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460) 
at glassAuth.GlassAuth.createAccount(GlassAuth.java:96) 
at glassAuth.GlassAuth.main(GlassAuth.java:52) 

Возможно, это связано с неправильной настройкой API-интерфейсов Google на code.google .com или что-то в этом роде?

Возможно, я не могу вставить аккаунт, потому что Google не знает «Имя учетной записи», которое я использую для вставки учетных записей?

+0

400 ответ синтаксическая ошибка. Если я использую URL в вашем примере, я получаю ответ 404. Я должен умышленно манипулировать URL-адресом, чтобы получить 400, поэтому, скорее всего, это проблема с форматом URL-адреса. Какой ответ вы вернетесь, если перейдете к: https://www.googleapis.com/mirror/v1/accounts/ {userToken}/com.example.myapp/username% 40email.com' (с обновленными значениями) напрямую в браузере? – Anthony

+0

Если я сделаю то, что вы попросили, я верну ответ «Не найдено». Означает ли это, что мое приложение не настроено должным образом для каждого запроса на проверку продуктов Glassware? Что я должен видеть? –

+0

Также может быть проблемой синтаксиса в самом теле сообщения. Было бы хорошо видеть отправку необработанного запроса. – Anthony

ответ

1

Так что я больше не получаю ответ на ошибку 400 или любую ошибку в этом отношении. Я еще не тестировал его со стороны Glass, но, вероятно, сейчас он работает. Секрет заключался в использовании «lumilogger» вместо «com.lumilogger.glassware» в поле ACCOUNT_TYPE при вызове insert (userToken, ACCOUNT_TYPE, accountName, account).

На самом деле, оглядываясь назад на мой обзор посуды. Просьба электронной почты (который Google любезно обновил для меня сегодня), я не указал «Тип учетной записи». Но сегодня они обновили его до «люмилогера». Теперь, вставив этот тип учетной записи, проблема решена.

Уроки, полученные в результате: 1. Вам необходимо указать тип учетной записи во время запроса на отзыв. 2. Тип учетной записи, которую вы передаете insert(), указан в (1), а не в имени вашего APK-пакета (например, com.google.test и т. Д.).