Java Android驱动器Api收到400个错误请求

Java Android驱动器Api收到400个错误请求,java,android,google-drive-api,google-oauth,Java,Android,Google Drive Api,Google Oauth,我花了很长时间和精力试图将Google Drive集成到android应用程序中。但这是一个陷阱-谷歌总是感到惊讶-在一个坏的意义上。这一切都是从我依赖谷歌的指示(,)开始的。我满足了所有条件-创建OAuth 2.0、为应用程序创建密钥、应用程序注册、导入库。。。一般来说,他们要求的每件事都做了,并进行了100次复查。但正如预期的那样没有起作用-在第一种情况下是所有的例子,我收到了一个“403禁止访问未配置”,第二个无法实现,因为谷歌没有发布密钥。在整个星期里,我一直在寻找解决这个问题的替代方案

我花了很长时间和精力试图将Google Drive集成到android应用程序中。但这是一个陷阱-谷歌总是感到惊讶-在一个坏的意义上。这一切都是从我依赖谷歌的指示(,)开始的。我满足了所有条件-创建OAuth 2.0、为应用程序创建密钥、应用程序注册、导入库。。。一般来说,他们要求的每件事都做了,并进行了100次复查。但正如预期的那样没有起作用-在第一种情况下是所有的例子,我收到了一个“403禁止访问未配置”,第二个无法实现,因为谷歌没有发布密钥。在整个星期里,我一直在寻找解决这个问题的替代方案——大量检查信息,花费大量精力和时间——但结果是0。一般性的问题带来了一线希望。但是,他提出的代码,据称是他使用的,我不使用——我允许应用程序使用该帐户,随后由于“与谷歌的通信错误”而连接失败,重复尝试也会产生相同的结果。因此,我绘制“他们的”代码只是为了尝试与驱动器通信。因为我在这里写作,所以它不起作用。下面显示的代码返回“400错误请求无效上载请求”, “。您对如何通过授权解决此问题有何想法,或者是否有其他成功登录的方法?我很乐意与您进行建设性的对话

package com.example.hiv;

import java.io.IOException;

import android.accounts.AccountManager;
import android.accounts.AccountManagerCallback;
import android.accounts.AccountManagerFuture;
import android.accounts.OperationCanceledException;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

import com.google.api.client.extensions.android.http.AndroidHttp;
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.extensions.android.gms.auth.UserRecoverableAuthIOException;
import com.google.api.client.googleapis.services.GoogleKeyInitializer;
import com.google.api.client.http.FileContent;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.drive.Drive;

public class ActivityStart extends Activity {

  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_activity_start);
    String AUTH_TOKEN_TYPE = "oauth2:https://www.googleapis.com/auth/drive";
    AccountManager accountManager = AccountManager.get(this);
    accountManager.invalidateAuthToken(accountManager.getAccounts()[0].type, null);
    accountManager.getAuthToken( accountManager.getAccountsByType("com.google")[0], AUTH_TOKEN_TYPE, null, this,
            new AccountManagerCallback<Bundle>() {

                public void run(final AccountManagerFuture<Bundle> future) {
                    try {
                        String authToken = future.getResult().getString(
                                AccountManager.KEY_AUTHTOKEN);

                            final HttpTransport transport = AndroidHttp.newCompatibleTransport();
                            final JsonFactory jsonFactory = new GsonFactory();
                            GoogleCredential credential = new GoogleCredential();
                            credential.setAccessToken(authToken);
                            final Drive drive = new Drive.Builder(transport, jsonFactory, credential)
                                    .setApplicationName("HIV")
                                    .setGoogleClientRequestInitializer(new GoogleKeyInitializer("*****yDaPx1EtTHpMMMULzYlxjc3xdwsf******"))
                                    .build();

                            Thread t = new Thread(new Runnable() {
                                @Override
                                public void run() {
                                  try {
                                    final com.google.api.services.drive.model.File body = new com.google.api.services.drive.model.File();
                                    body.setTitle("My Test File");
                                    body.setDescription("A Test File");
                                    body.setMimeType("text/plain");

                                    java.io.File fileContent = new java.io.File("data/data/com.example.hiv/document.txt");
                                    FileContent mediaContent = new FileContent("text/plain", fileContent);

                                    com.google.api.services.drive.model.File file = drive.files().insert(body, mediaContent).execute();

                                  } catch (UserRecoverableAuthIOException e) {
                                    e.printStackTrace();
                                  } catch (IOException e) {
                                    e.printStackTrace();
                                  }
                                }
                              });
                              t.start(); 

                    } catch (OperationCanceledException exception) {
                        // TODO
                    } catch (Exception exception) {
                        Log.d(this.getClass().getName(), exception.getMessage());
                    }
                }
            }, null);       
  } 
}
package com.example.hiv;
导入java.io.IOException;
导入android.accounts.AccountManager;
导入android.accounts.AccountManagerCallback;
导入android.accounts.accountmanager未来;
导入android.accounts.OperationCanceledException;
导入android.app.Activity;
导入android.os.Bundle;
导入android.util.Log;
导入com.google.api.client.extensions.android.http.AndroidHttp;
导入com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
导入com.google.api.client.googleapis.extensions.android.gms.auth.UserRecoverableAuthIOException;
导入com.google.api.client.googleapis.services.GoogleKeyInitializer;
导入com.google.api.client.http.FileContent;
导入com.google.api.client.http.HttpTransport;
导入com.google.api.client.json.JsonFactory;
导入com.google.api.client.json.gson.GsonFactory;
导入com.google.api.services.drive.drive;
公共类ActivityStart扩展活动{
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.layout\u activity\u start);
字符串AUTH_TOKEN_TYPE=“oauth2:https://www.googleapis.com/auth/drive";
AccountManager=AccountManager.get(此);
accountManager.invalidateAuthToken(accountManager.getAccounts()[0]。类型,null);
accountManager.getAuthToken(accountManager.getAccountsByType(“com.google”)[0],AUTH_TOKEN_TYPE,null,this,
新建AccountManagerCallback(){
公开作废运行(最终帐户管理器未来){
试一试{
String authToken=future.getResult().getString(
AccountManager.KEY_AUTHTOKEN);
final HttpTransport transport=AndroidHttp.newCompatibleTransport();
最终的JsonFactory JsonFactory=新的GsonFactory();
GoogleCredential credential=新的GoogleCredential();
credential.setAccessToken(authToken);
终传动=新传动.Builder(运输、jsonFactory、凭证)
.setApplicationName(“HIV”)
.setGoogleClientRequestInitializer(新的GoogleKeyInitializer(“****YDAPX1ETTHPMMULZYLXJC3XDWSF*******”)
.build();
线程t=新线程(新的可运行线程(){
@凌驾
公开募捐{
试一试{
final com.google.api.services.drive.model.File body=new com.google.api.services.drive.model.File();
body.setTitle(“我的测试文件”);
body.setDescription(“测试文件”);
body.setMimeType(“文本/普通”);
java.io.File fileContent=new java.io.File(“data/data/com.example.hiv/document.txt”);
FileContent mediaContent=新的FileContent(“文本/普通”,FileContent);
com.google.api.services.drive.model.File File=drive.files().insert(body,mediaContent.execute();
}捕获(UserRecoverableAuthIOE异常){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
}
});
t、 start();
}捕获(操作取消异常异常){
//待办事项
}捕获(异常){
Log.d(this.getClass().getName(),exception.getMessage());
}
}
},空);
} 
}

已解决:我正在尝试发送大小为0 kB的文件。

已解决:我正在尝试发送大小为0 kB的文件。然后请回答或关闭此问题。谢谢:)