Google Webmasters API für Java gibt leere Site-Liste zurück

Ich habe einen einfachen Site-Listen-Abfragecode geschrieben, der Oauth mit @ verwendeservice account basierend auf dem @ von GoogDokumentatio. Die verwendete Authentifizierungsschlüsseldatei (.p12) ist ebenso gültig wie das Konto.

Das Problem ist, dass die Site-Listenmethode eine leere Liste zurückgibt.

service.sites().list().execute();

Auch wenn ich explizit versuche, Sitemaps einer validierten Site zu erhalten, indem ich @ aufru

service.sitemaps().list("my.sample.site.com").execute();

Ich habe eine 403 Forbidden - "Benutzer hat keine ausreichende Berechtigung für Site 'sample.site.com'. Siehe auch:https: //support.google.com/webmasters/answer/245199. "Fehler von der API.

Gemäß meinem Debugging lädt die API die Schlüsseldatei (.p12) perfekt und verwaltet die Zugriffstoken usw. ohne Probleme.

Obwohl könnte es ein Problem mit meinem @ gebservice account Authentifizierung

Abhängigkeiten:

<dependency>
  <groupId>com.google.apis</groupId>
  <artifactId>google-api-services-webmasters</artifactId>
  <version>v3-rev6-1.20.0</version>
</dependency>

Beispielcode

package webmastertools;

import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.webmasters.Webmasters;
import com.google.api.services.webmasters.WebmastersScopes;
import com.google.api.services.webmasters.model.SitesListResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import java.io.File;
import java.util.Collections;

public class GoogleWebmastersClient {

    static Log logger = LogFactory.getLog(GoogleWebmastersClient.class);

    public static void main(String args[]) {

        try {

            HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
            JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
            String emailAddress = "[email protected]";
            String applicationName = "Sitemap Generator";

            GoogleCredential credential = new GoogleCredential.Builder()
                    .setTransport(httpTransport)
                    .setJsonFactory(jsonFactory)
                    .setServiceAccountId(emailAddress)
                    .setServiceAccountPrivateKeyFromP12File(new File("/path/to/auth.p12"))
                    .setServiceAccountScopes(Collections.singletonList(WebmastersScopes.WEBMASTERS))
                    .build();

            Webmasters service = new Webmasters.Builder(httpTransport, jsonFactory, credential)
                    .setApplicationName(applicationName)
                    .build();

            SitesListResponse siteList = service.sites().list().execute();

            if (siteList.isEmpty()) {
                logger.info("Site list is empty!");
            }

        } catch (Exception e) {
            logger.error("Exception: ", e);
        }
    }
}

Ist mit diesem Code etwas nicht in Ordnung?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage