2013-03-03 14 views
5

Ich plane eine Android App zu schreiben, um Dateien von Google Drive zu holen.Bietet GoogleAccountCredential Aktualisierungstoken?

Wenn der Speicher riesig ist, wird es definitiv Stunden dauern, die Dateien herunterzuladen. In diesem Fall würde ich ein Aktualisierungstoken benötigen, um den Vorgang abzuschließen. Soweit ich weiß, bietet GoogleAccountCredential keine Methoden zum Abrufen des Aktualisierungstokens.

Ich möchte das Token und das Aktualisierungstoken an einen Webservice senden, damit die Dateien im Namen meiner App heruntergeladen und auf dem Server gespeichert werden.

Gibt es eine Möglichkeit, Aktualisierungstoken von GoogleAccountCredential zu erhalten?

+0

gründe Sie die Lösung? – tttony

Antwort

0

i über android weiß nicht, aber in Java, wenn Sie Aktualisierungs-Token erhalten möchten, können Sie GoogleAuthorizationaflow für den Offline-Zugriff Typ anfordern müssen ..

wie
Flow = new GoogleAuthorizationCodeFlow.Builder (Httptransport, jsonFactory, clientSecrets, SCOPES) .setAccessType ("offline"). SetApprovalPrompt ("force"). Build();

+0

Danke für die Antwort user2032988. Aber ich möchte GoogleAccountCredential verwenden, um Token abzurufen, da es als Wrapper für GoogleAuthorizationCodeFlow fungiert, und ich werde Token in zwei Schritten erhalten, und ich möchte wirklich den zuerst zurückgegebenen Authcode nicht analysieren und dann für den Zugriff auf Toke austauschen. – Manoj

0

Ja, tut es. Sie müssen sich für eine serverseitige Rahmen fragen die Refresh-Token zu erhalten:

String MY_SCOPE = ""; // put your score here, e.g. "https://www.googleapis.com/auth/gmail.readonly" 
String CLIENT_ID = "1234567890-abcdefghijklmnopqrstuvwxyz.apps.googleusercontent.com"; 
String SERVER_SCOPE = "oauth2:server:client_id:" + CLIENT_ID + ":api_scope:" + MY_SCOPE; 

GoogleAccountCredential cred = new GoogleAccountCredential(context, SERVER_SCOPE).setSelectedAccountName("[email protected]"); 
cred.getToken(); 
Verwandte Themen