要求是使用基于Java的Google API库连接到Google标记管理器,并以编程方式添加/修改/删除标记。为了实现这一点,编写了一个独立的类,但它引发了异常:
Exception in thread "main" com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
at [Source: (GZIPInputStream); line: 2, column: 2]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1804)
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:669)
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:567)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._handleUnexpectedValue(UTF8StreamJsonParser.java:2624)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:826)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:723)
at com.google.api.client.json.jackson2.JacksonParser.nextToken(JacksonParser.java:55)
at com.google.api.client.json.JsonParser.startParsing(JsonParser.java:221)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:380)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:355)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:87)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:81)
at com.google.api.client.http.HttpResponse.parseAs(HttpResponse.java:459)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)
at GTMTester.main(GTMTester.java:46)
final HttpTransport TRANSPORT = new NetHttpTransport();
final JsonFactory JSON_FACTORY = new JacksonFactory();
InputStream resourceAsStream = new FileInputStream(new File
("/testGTMapis/auth.json"));
GoogleCredential credential = GoogleCredential.fromStream(resourceAsStream,TRANSPORT,JSON_FACTORY).createScoped(TagManagerScopes.all());
TagManager tagManager= (new TagManager.Builder(TRANSPORT, JSON_FACTORY, (new HttpRequestInitializer() {
@Override
public void initialize(HttpRequest httpRequest) throws IOException {
// TODO Auto-generated method stub
httpRequest.setInterceptor(credential);
}
}))).setApplicationName("gtm-test-project-123456").setRootUrl("https://appengine.google.com/deployment?app_id=s~gtm-test-project-123456").build();
ListAccountsResponse result = tagManager.accounts().list()
.execute();
List<Account> accounts = result.getAccount();
if (accounts == null || accounts.size() == 0) {
System.out.println("No accounts found.");
} else {
System.out.println("Accounts:");
for (Account account : accounts) {
System.out.printf("%s (%s)\n", account.getAccountId(),
account.getName());
}
}
可以帮忙吗