我想爲我的GDK應用程序設置MyGlass身份驗證,如Google Glass GDK Authentication using PHP。用戶通過MyGlass登錄我的網站,進行身份驗證,然後嘗試使用Mirror API插入帳戶。使用Java示例和PHP庫的MyGlass身份驗證「無效值」響應
我遵循http://goo.gl/DVggO6中描述的「工作」PHP示例。但是,我總是從Google API服務器返回一個錯誤,提示「無效的值」,但沒有進一步的信息。
我已經重複檢查了我的密鑰和密鑰文件,並驗證了Mirror API快速入門的作用。所以一切似乎都應該正確設置。
除了提供解決方案,任何人都可以提出方法來解決問題嗎?是在本地Web服務器上運行它並使用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" } }
我也嘗試過玻璃的MyGlass認證頁面顯示的完整的Java例子,並得到了同樣的錯誤:
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)
這可能是由於code.google上的Google API配置不正確所致.com或類似的東西?
也許我無法插入帳戶,因爲Google不知道我用來插入帳戶的「帳戶名稱」?
400響應表示語法錯誤。如果我在你的例子中使用URL,我會得到一個404響應。我不得不故意將URL改爲400,所以這可能是URL格式的問題。如果您直接訪問https://www.googleapis.com/mirror/v1/accounts/ {userToken}/com.example.myapp /用戶名%40email.com(具有更新的值),您會收到什麼回覆在瀏覽器中? – Anthony 2014-09-10 02:35:35
如果我按照你的要求做,我會回覆「Not Found」。這是否表明我的應用沒有按照Google的Glassware Review Request流程進行正確配置?我應該看到什麼? – 2014-09-10 03:35:18
也可能是thr post body本身的語法問題。很高興看到原始請求被髮送。 – Anthony 2014-09-10 03:46:33