#java #google-api
#java #google-api
Вопрос:
Я только что проверил образцы google-api-java-client и собрал их с помощью eclipse maven.
Я настроил свой ClientCredentials
класс с помощью ключа потребителя, секрета потребителя и ключа ввода.
Когда я запускаю образец, он запрашивает у меня авторизацию для доступа к моим данным Google latitude и закрывает браузер, а консоль eclipse остается с этой ошибкой:
2011-05-21 23:57:01.777:INFO::Logging to STDERR via org.mortbay.log.StdErrLog
2011-05-21 23:57:01.778:INFO::jetty-6.1.24
2011-05-21 23:57:01.792:INFO::Started SocketConnector@localhost:51514
Created new window in existing browser session.
2011-05-21 23:57:09.121:INFO::Stopped SocketConnector@localhost:51514
Current location:
java.lang.IllegalArgumentException
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:72)
at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:450)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:249)
at com.google.api.client.json.JsonParser.parseAndClose(JsonParser.java:176)
at com.google.api.client.json.JsonParser.parseAndClose(JsonParser.java:115)
at com.google.api.client.googleapis.json.JsonCParser.parse(JsonCParser.java:49)
at com.google.api.client.http.HttpResponse.parseAs(HttpResponse.java:261)
at com.google.api.client.sample.latitude.model.LocationResource.executeGetCurrentLocation(LocationResource.java:78)
at com.google.api.client.sample.latitude.LatitudeSample.showCurrentLocation(LatitudeSample.java:50)
at com.google.api.client.sample.latitude.LatitudeSample.main(LatitudeSample.java:34)
Когда я отлаживаю приложение, это переменные в строке 450 из JsonParser.class:
newInstance null
isMap false
token JsonToken (id=40)
name "VALUE_STRING" (id=55)
ordinal 5
field Field (id=45)
fieldClass Class<T> (java.lang.Long) (id=47)
Поле является:
public java.lang.Long com.google.api.client.sample.latitude.model.LocationResource.timestampMs
Это краткое изложение HG:
bob@computer:~/development/google-api-java-client-samples$ hg summary
parent: 92:4be51d2cc385 tip
Samples for version 1.4.
branch: default
commit: 1 modified
update: (current)
ОБНОВЛЕНИЕ!
Это можно исправить, изменив com.google.api.client.sample.latitude.model.LocationResource строка 30 из «общедоступных длинных временных меток;» в «общедоступные строковые временные метки;». Поскольку сервер отправляет обратно строку, а не число.
Реальный вопрос: почему сервер отправляет обратно строку, когда образец ожидает число? Является ли пример кода неправильным? (вероятно) или сервер?