0

Googleドライブの統合に取り組んでいます。Googleコンソールを使用してAPIアクセスキーを取得し、oauth2認証も完了しました。すでにGoogleカレンダーの統合を使用しており、正常に機能していますが、ファイルリストを取得したいドライブを統合すると、空が返されます。何が間違っているのかわかりません。以下は私のコードです。上級者に感謝します。

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 ドライブ内のファイルにアクセスできるようにするには、サービス アカウントのメール アドレスにアクセス許可を与える必要があります。権限が正しく設定されると、サービス アカウントがアクセスできるファイルがリストに入力されます。

于 2013-08-23T05:03:35.697 に答える