2016-10-18 2 views
2

Ich befolge diese guide, um eine Android-Anwendung zu erstellen, die den Benutzer für den Kontozugriff mit Gmail Scope als schreibgeschützt anfordert und dann einen authCode generiert und an den Backend-Server sendet.Gmail über Gmail SDK mit accessToken aufrufen?

Der Back-End-Server empfängt dann den AuthCode und generiert einen acessToken, der es verwendet. Hier ist der Code für die:

private static String CLIENT_SECRET_FILE = "/client_secret.json"; 

private static String REDIRECT_URI = ""; 

String accessToken = null; 

// Exchange auth code for access token 
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JacksonFactory.class.newInstance(), 
       new FileReader(CLIENT_SECRET_FILE)); 

GoogleTokenResponse tokenResponse = new GoogleAuthorizationCodeTokenRequest(new NetHttpTransport(), 
       JacksonFactory.class.newInstance(), "https://www.googleapis.com/oauth2/v4/token", 
       clientSecrets.getDetails().getClientId(), clientSecrets.getDetails().getClientSecret(), authCode, 
       REDIRECT_URI).execute(); 

accessToken = tokenResponse.getAccessToken(); 

nun mit diesen Zugriffstoken des Backend-Server Gmail mit der Google Mail-SDK zugreifen muss.

Wie erreiche ich das?

Antwort

0

Nach mehreren Stunden durch die Dokumentation gehen Habe ich es endlich heraus:

static final String APPLICATION_NAME = "POC"; 

/** 
* Global instance of the JSON factory. 
*/ 
static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); 

/** Global instance of the HTTP transport. */ 
static HttpTransport HTTP_TRANSPORT; 

public Gmail getGmailService(String accessToken) throws IOException { 
    GoogleCredential credential = new GoogleCredential().setAccessToken(accessToken); 
    return new Gmail.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential).setApplicationName(APPLICATION_NAME).build(); 
} 

Mit diesem Gmail Objekt Sie dann weitere Anforderungen machen.