我正在研究谷歌驱动器集成。我已经完成了使用谷歌控制台获取api访问密钥,并完成了oauth2 authentication.i已经使用谷歌日历集成及其工作正常,但当我集成驱动器,想要检索文件列表其返回空。我不知道出了什么问题。以下是我的代码。感谢高级。
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());
}`
答案 0 :(得分:1)
您使用的应用程序拥有的帐户就像普通帐户,但属于应用而非用户。
应用程序拥有的帐户没有特殊权限,并且作为常规帐户,只能访问他们拥有的文件或与他们共享的文档。因此,如果您的常规帐户拥有这些文件,则服务帐户将无法列出这些文件。
您可以使用域范围委派来允许您的应用代表Google Apps域中的其他用户访问文件:
https://developers.google.com/drive/delegation
要允许服务帐户访问我自己的Google云端硬盘中的文件,我必须授予服务帐户电子邮件地址的权限。正确设置权限后,列表将填充允许服务帐户访问的文件。