Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何获取google drive rest api调用的访问令牌?_Android_Google Drive Android Api - Fatal编程技术网

Android 如何获取google drive rest api调用的访问令牌?

Android 如何获取google drive rest api调用的访问令牌?,android,google-drive-android-api,Android,Google Drive Android Api,我想通过访问令牌从google drive获取文件列表 我所做的: 将应用程序注册到谷歌开发控制台 我有基于OAuth 2.0的客户端id 我想做的是: 调用HttpCallforhttps://www.googleapis.com/drive/v2/files 我想在标头中设置访问令牌,如下所示: DefaultHttpClient-httpClient=newdefaulthttpclient(); HttpPost=新的HttpPost(“https://www.googleapis.co

我想通过访问令牌从google drive获取文件列表

我所做的:

  • 将应用程序注册到谷歌开发控制台

  • 我有基于OAuth 2.0的客户端id

  • 我想做的是:

  • 调用
    HttpCall
    for
    https://www.googleapis.com/drive/v2/files

  • 我想在标头中设置访问令牌,如下所示:

    DefaultHttpClient-httpClient=newdefaulthttpclient();
    HttpPost=新的HttpPost(“https://www.googleapis.com/drive/v2/files");
    post.addHeader(“内容类型”、“应用程序/json”);
    邮寄地址抬头(“授权”、“持票人XXXXXXXXXXXXXXXXXXXXXXXXX”)

  • 如何使用
    OAuth2.0
    客户端Id获取授权访问令牌

  • 您应该查看文档

    这样整个工作就简单多了。比如说

    创建一个文件: 列出文件夹中的文件 列出文件夹中的所有文件

    /**
     * An activity that illustrates how to list files in a folder.
     */
    public class ListFilesInFolderActivity extends BaseDemoActivity implements
            ResultCallback {
    
        private static DriveId sFolderId = DriveId.decodeFromString("DriveId:0B2EEtIjPUdX6MERsWlYxN3J6RU0");
    
        private ListView mResultsListView;
        private ResultsAdapter mResultsAdapter;
    
        @Override
        public void onConnected(Bundle connectionHint) {
            super.onCreate(connectionHint);
            setContentView(R.layout.activity_listfiles);
            mResultsListView = (ListView) findViewById(R.id.listViewResults);
            mResultsAdapter = new ResultsAdapter(this);
            mResultsListView.setAdapter(mResultsAdapter);
            DriveFolder folder = Drive.DriveApi.getFolder(getGoogleApiClient(), sFolderId);
            folder.listChildren(getGoogleApiClient()).setResultCallback(childrenRetrievedCallback);
        }
    
        ResultCallback<MetadataBufferResult> childrenRetrievedCallback = new
                ResultCallback<MetadataBufferResult>() {
            @Override
            public void onResult(MetadataBufferResult result) {
                if (!result.getStatus().isSuccess()) {
                    showMessage("Problem while retrieving files");
                    return;
                }
                mResultsAdapter.clear();
                mResultsAdapter.append(result.getMetadataBuffer());
                showMessage("Successfully listed files.");
            }
        }
    }
    

    有关查询的更多详细信息。

    如果您正在使用中可用的作用域进行调用,那么这将是您的最佳选择

    否则,您可以使用GoogleDrive Java客户端库。在这个例子中,您可以使用GoogleAccountCredential for Auth,它将包含访问令牌,但是您不需要直接使用它。请看一个例子

    /**
     * An activity that illustrates how to list files in a folder.
     */
    public class ListFilesInFolderActivity extends BaseDemoActivity implements
            ResultCallback {
    
        private static DriveId sFolderId = DriveId.decodeFromString("DriveId:0B2EEtIjPUdX6MERsWlYxN3J6RU0");
    
        private ListView mResultsListView;
        private ResultsAdapter mResultsAdapter;
    
        @Override
        public void onConnected(Bundle connectionHint) {
            super.onCreate(connectionHint);
            setContentView(R.layout.activity_listfiles);
            mResultsListView = (ListView) findViewById(R.id.listViewResults);
            mResultsAdapter = new ResultsAdapter(this);
            mResultsListView.setAdapter(mResultsAdapter);
            DriveFolder folder = Drive.DriveApi.getFolder(getGoogleApiClient(), sFolderId);
            folder.listChildren(getGoogleApiClient()).setResultCallback(childrenRetrievedCallback);
        }
    
        ResultCallback<MetadataBufferResult> childrenRetrievedCallback = new
                ResultCallback<MetadataBufferResult>() {
            @Override
            public void onResult(MetadataBufferResult result) {
                if (!result.getStatus().isSuccess()) {
                    showMessage("Problem while retrieving files");
                    return;
                }
                mResultsAdapter.clear();
                mResultsAdapter.append(result.getMetadataBuffer());
                showMessage("Successfully listed files.");
            }
        }
    }
    
    Query query = new Query.Builder()
        .addFilter(Filters.eq(SearchableField.TITLE, "HelloWorld.java"))
        .build();
    Drive.DriveApi.query(googleApiClient, query);