Tôi có một ứng dụng Android cuối cùng sẽ lưu trữ nội dung do người dùng tạo trong nhóm Google Cloud Storage. Nhưng tôi không thể làm như vậy từ mã ứng dụng của mình. Mã trông giống như sau:Xác thực tài khoản dịch vụ từ ứng dụng Android cho Google Cloud Storage
JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
KeyStore keystore = SecurityUtils.getPkcs12KeyStore();
keystore.load(resources.openRawResource(R.raw.secret), "***password***".toCharArray());
PrivateKey key = (PrivateKey)keystore.getKey("privatekey", "***password***".toCharArray());
credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(new JacksonFactory())
.setServiceAccountPrivateKey(key)
.setServiceAccountId("**************@developer.gserviceaccount.com")
.setServiceAccountScopes(Collections.singleton(StorageScopes.DEVSTORAGE_READ_WRITE))
.build();
credential.refreshToken();
String URI = "https://storage.googleapis.com/"+BUCKET_NAME;
HttpRequestFactory requestFactory = httpTransport.createRequestFactory(credential);
GenericUrl url = new GenericUrl(URI);
HttpRequest request = requestFactory.buildGetRequest(url);
HttpResponse response = request.execute();
String content = response.parseAsString();
Log.d("testing", "response content is: " + content);
new Storage.Builder(httpTransport, JSON_FACTORY, credential).setApplicationName("Doubts").build();
Tôi gặp nhiều lỗi khác nhau. Một trong số đó là:
java.security.KeyStoreException: java.security.NoSuchAlgorithmException: KeyStore JKS implementation not found
Tài liệu chính thức chỉ đơn giản là bỏ qua trường hợp sử dụng từ ứng dụng Android.
binaryking> Thậm chí nếu điều này làm việc - bạn sẽ nhúng khóa bí mật/mật khẩu bên trong ứng dụng android của bạn ?? – Jasper