0

我正在研究谷歌驱动器集成。我已经使用谷歌控制台获取了 api 访问密钥,也完成了 oauth2 身份验证。我已经使用了谷歌日历集成并且它工作正常但是当我集成想要检索文件列表的驱动器时,它的返回为空。我不知道出了什么问题。以下是我的代码。感谢高级。

public class RetriveFromDrive extends AsyncTask<Void,Void,Void> 
    {
        List<File> result=new ArrayList<File>();
        Files.List request;

        @Override
        protected Void doInBackground(Void... params) {
            try{
            // TODO Auto-generated method stub
            Log.d("Msg", "Do in Background");   
            request=gDrive.files().list();
            Log.d("Msg", request.toString());
            FileList file =request.execute();
            result.addAll(file.getItems());
            names=new ArrayList<String>(); 
            for (File file1 :result) {
                names.add(file1.getTitle());
                Log.d("Names", names.toString());
            }
            }catch(Exception e)
            {
                e.printStackTrace();
            }
            return null;
        }
        @Override
        protected void onPostExecute(Void params) {
            // TODO Auto-generated method stub
            super.onPostExecute(params);
            Log.d("Msg","onPostExecute");
            Log.d("Names",names.toString());


        }`
4

1 回答 1

0

您正在使用应用程序拥有的帐户,该帐户类似于普通帐户,但属于应用程序而不是用户。

应用程序拥有的帐户没有特殊权限,并且作为普通帐户,只能访问他们拥有或与他们共享的文档。因此,如果您的常规帐户拥有这些文件,则服务帐户将无法列出它们。

您可以使用域范围的委派来允许您的应用代表 Google Apps 域中的其他用户访问文件:

https://developers.google.com/drive/delegation

要允许服务帐户访问我自己的 Google Drive 中的文件,我必须授予服务帐户的电子邮件地址权限。正确设置权限后,列表中将填充允许服务帐户访问的文件。

于 2013-08-23T05:03:35.697 回答