私は、ユーザーの要求に応じてファイルをGoogleドライブにアップロードできるAndroid搭載アプリケーションを構築しようとしています。しかし、私は単一の実例をどこにも見つけることができません。ここにあちこちに散らばった半分の小片があります。彼らの中にはOAuthで接続できるものもあれば、空のファイルやフォルダを作るものもありますが、どこにでもトークンを保存してファイルをシームレスにアップロードできるアプリはありません。私は本やビデオが利用できないので機能を実装する方法については無知です、Googleのサンプルは私のためには機能しません。私はコードを動作させるのに苦労しています。助けてください。ありがとう。GoogleドライブAPIファイルのアップロードに関する問題
答えて
Googleドライブサービスを作成する際は、常に以下のクラスを使用します。
あなたのポンポンファイルにこれらの依存関係を持っている必要があります:まず
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client</artifactId>
<version>1.23.0</version>
</dependency>
<dependency>
<groupId>com.google.oauth-client</groupId>
<artifactId>google-oauth-client-jetty</artifactId>
<version>1.23.0</version>
</dependency>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-drive</artifactId>
<version>v2-rev282-1.23.0</version>
</dependency>
次にドライブAPIクライアントのインスタンスを作成するには、このクラスを使用します。
import com.google.api.client.auth.oauth2.Credential;
import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
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.client.util.store.FileDataStoreFactory;
import com.google.api.services.drive.Drive;
import com.google.api.services.drive.DriveScopes;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.security.GeneralSecurityException;
import java.util.Arrays;
import java.util.List;
/**
*
* @author jalal-sordo
*/
public class GoogleDriveServiceFactory {
private String applicationName;
private JsonFactory jsonFactory;
private HttpTransport googleDriveHttpTransport;
private List<String> googleDriveApiScopes;
private String googleDriveClientSecretFilePath;
private FileDataStoreFactory credentialsStoreFolder;
public GoogleDriveServiceFactory(ApplicationParameters params) {
try {
this.googleDriveClientSecretFilePath = params.getGoogleDriveClientSecretFilePath();
// = new FileInputStream(googleDriveClientSecretFilePath);
applicationName = "someApplicationName";
jsonFactory = JacksonFactory.getDefaultInstance();
googleDriveApiScopes = Arrays.asList(DriveScopes.DRIVE);
googleDriveHttpTransport = GoogleNetHttpTransport.newTrustedTransport();
java.io.File googleDriveCredentialsStore = new java.io.File(params.getGoogleDriveCredentialsFolderPath());
credentialsStoreFolder = new FileDataStoreFactory(googleDriveCredentialsStore);
} catch (IOException | GeneralSecurityException t) {
System.err.println(t.getMessage());
System.exit(1);
}
}
public Credential authorize() throws IOException {
InputStreamReader streamReader = new FileReader(new java.io.File(googleDriveClientSecretFilePath));
GoogleClientSecrets clientSecrets
= GoogleClientSecrets.load(jsonFactory, streamReader);
// Build flow and trigger user authorization request.
GoogleAuthorizationCodeFlow flow
= new GoogleAuthorizationCodeFlow.Builder(
googleDriveHttpTransport, jsonFactory, clientSecrets, googleDriveApiScopes)
.setDataStoreFactory(credentialsStoreFolder)
.setAccessType("offline")
.build();
Credential credential = new AuthorizationCodeInstalledApp(
flow, new LocalServerReceiver()).authorize("user");
return credential;
}
public Drive getDriveService() throws IOException {
Credential credential = authorize();
return new Drive.Builder(
googleDriveHttpTransport, jsonFactory, credential)
.setApplicationName(applicationName)
.build();
}
}
ます。また、このクラスが必要になります上記のクラスにパラメータを指定してください:
/**
*
* @author jalal-sordo
*/
public class ApplicationParameters {
private String googleDriveCredentialsFolderPath;
private String googleDriveClientSecretFilePath;
public String getGoogleDriveCredentialsFolderPath() {
return googleDriveCredentialsFolderPath;
}
public void setGoogleDriveCredentialsFolderPath(String googleDriveCredentialsFolderPath) {
this.googleDriveCredentialsFolderPath = googleDriveCredentialsFolderPath;
}
public String getGoogleDriveClientSecretFilePath() {
return googleDriveClientSecretFilePath;
}
public void setGoogleDriveClientSecretFilePath(String googleDriveClientSecretFilePath) {
this.googleDriveClientSecretFilePath = googleDriveClientSecretFilePath;
}
@Override
public String toString() {
return "ApplicationParameters{"
+ "\ngoogleDriveCredentialsFolderPath = " + googleDriveCredentialsFolderPath
+ "\ngoogleDriveClientSecretFilePath = " + googleDriveClientSecretFilePath
+ "\n}";
}
}
これはあなたが作成する方法ですGoogleDriveServiceFactoryのインスタンスを作成し、ファイルアップロードを実行します。
ApplicationParameters params = new ApplicationParameters();
//this is where you specify where you want the credentials to be stored
//after a successful autherization is made from the browser (this code will
//open the authorization consent page on your default browser).
params.setGoogleDriveCredentialsFolderPath("/path/to/credentials/folder");
//this is the path to your client_id that you downloaded from google cloud
//console credentials page.
params.setGoogleDriveClientSecretFilePath("/path/to/client_id.json");
GoogleDriveServiceFactory driveFactory = new GoogleDriveServiceFactory (params);
File fileMetadata = new File();
fileMetadata.setName("photo.jpg");
java.io.File filePath = new java.io.File("files/photo.jpg");
FileContent mediaContent = new FileContent("image/jpeg", filePath);
File file = driveFactory.getDriveService.files().create(fileMetadata, mediaContent)
.setFields("id")
.execute();
System.out.println("File ID: " + file.getId());
OK努力してくれてありがとう!私はそれを動作させるようにしようとします。 –
問題はありませんが、あなたがこの答えを見つけた場合は、受け入れて投票してください。 –
それはあなたのために働いたのですか? –
- 1. GoogleドライブAPIの統合に関する問題
- 2. JavaScript GoogleドライブAPI V3 - ファイルをフォルダにアップロード
- 3. google apiを使用してGoogleドライブにファイルをアップロードする
- 4. Docopt | GoogleドライブAPIの統合の問題
- 5. GoogleドライブAPI - ダウンロードファイルの問題(javascript、php)
- 6. ファイルをGoogleドライブにアップロード
- 7. Googleドライブの問題
- 8. アップロードGoogleドライブAPIレトロフィット2
- 9. Googleドライブにファイルをアップロードするには
- 10. Googleドライブにファイルをアップロードするには?
- 11. Android用GoogleドライブAPI(GDAA)を使用して大容量ファイルをGoogleドライブにアップロード
- 12. Java用GoogleドライブAPIクライアントライブラリを使用して、ドライブにファイルをアップロードする認証
- 13. ファイルのアップロードに関する問題HTML5
- 14. PHPファイルのアップロードに関する問題
- 15. PHPファイルのアップロードに関する問題
- 16. Android StudioとGoogleドライブAPI(Googleドライブに動画をアップロード)
- 17. GoogleドライブREST APIでProguardの問題を解決するには
- 18. GoogleドライブAPIでアップロードしたGoogleドライブのファイルが見つかりません
- 19. GoogleドライブAPI非ウェブベースのPythonをアップロードするファイル
- 20. GoogleドライブAPI - 自分のアカウントにファイルのアップロードwithougの署名 - PHP
- 21. Googleドライブの移行に関する共有の問題
- 22. FTPアップロード、acentsファイルに関する問題
- 23. Google Api for PHP(ドライブAPI).pdfとしてアップロード.docxファイル
- 24. Googleドキュメントのアップロード問題iphone(GData API)
- 25. GoogleドライブAPIを使用してファイルをアップロードする
- 26. Java GoogleドライブAPIを使用してファイルをアップロードする方法
- 27. EclipseとGoogleドライブの問題
- 28. Googleドライブ認証の問題
- 29. GoogleドライブのPython 3にtxtファイルをアップロード
- 30. CドライブでGoogleドライブにファイルをアップロードする
「コードを作成するのに苦労しています。 –
私はコードを何らかの形で利用可能なスニペットを使って動作させるために書いてきましたが、まだ動作していません。私はそれを投稿することはできません。それはまったく大きな混乱です。 –
そして、私たちはあなたのコードを**想像するはずですか?良い一日を。 –