2013-03-03 36 views
5

Tôi đang lên kế hoạch viết Ứng dụng Android để tìm nạp tệp từ Google Drive.GoogleAccountCredential có cung cấp mã thông báo làm mới không?

Nếu dung lượng lớn, chắc chắn sẽ mất hàng giờ để tải xuống tệp. Trong trường hợp này, tôi sẽ cần mã thông báo làm mới để hoàn tất quy trình. Theo như tôi biết, GoogleAccountCredential không cung cấp bất kỳ phương pháp nào để nhận mã thông báo làm mới.

Tôi muốn gửi mã thông báo và mã thông báo làm mới đến một websevice để nó sẽ tải xuống các tệp thay mặt cho ứng dụng của tôi và lưu trữ nó trong máy chủ.

Có cách nào để nhận mã thông báo làm mới từ GoogleAccountCredential không?

+0

bạn có tìm thấy giải pháp này không? – tttony

Trả lời

0

tôi không biết về android nhưng trong java nếu bạn muốn nhận thẻ làm mới, bạn phải yêu cầu GoogleAuthorizationaflow cho loại hình truy cập ẩn ..

như
dòng = new GoogleAuthorizationCodeFlow.Builder (httpTransport, jsonFactory, clientSecrets, SCOPES) .setAccessType ("ngoại tuyến"). SetApprovalPrompt ("force"). Build();

+0

Cảm ơn bạn đã trả lời user2032988. Nhưng tôi muốn sử dụng GoogleAccountCredential để truy xuất mã thông báo vì nó hoạt động như một trình bao bọc cho GoogleAuthorizationCodeFlow và tôi sẽ nhận mã thông báo theo hai bước và tôi thực sự không muốn phân tích cú pháp Authcode được trả về trước và sau đó trao đổi nó để truy cập toke. – Manoj

0

Vâng, đúng vậy. Bạn cần yêu cầu phạm vi phía máy chủ để nhận mã thông báo làm mới:

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(); 
Các vấn đề liên quan