2016-06-14 9 views
1

さまざまな機能のうち、ユーザーがログインしてドライブのファイルにアクセスできるように、GoogleドライブにCドライブのアプリケーションを追加したいと考えています。 私はこのウェブにし、他のソースからのコードの多くを研究し、私は、次のいずれかで成功を収めて:Googleドライブが埋め込まれたC#

UserCredential credential; 

using (var stream = 
    new FileStream("client_id.json", FileMode.Open, FileAccess.Read)) 
{ 
    string credPath = System.Environment.GetFolderPath(
     System.Environment.SpecialFolder.Personal); 
    credPath = Path.Combine(credPath, ".credentials/drive-dotnet-quickstart.json"); 

    credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
     GoogleClientSecrets.Load(stream).Secrets, 
     Scopes, 
     "user", 
     CancellationToken.None, 
     new FileDataStore(credPath, true)).Result; 
    Console.WriteLine("Credential file saved to: " + credPath); 
} 

// Create Drive API service. 
var service = new DriveService(new BaseClientService.Initializer() 
    { 
     HttpClientInitializer = credential, 
     ApplicationName = ApplicationName, 
    }); 

// Define parameters of request. 
FilesResource.ListRequest listRequest = service.Files.List(); 
//listRequest.PageSize = 10; 
listRequest.Fields = "nextPageToken, files(id, name)"; 

// List files. 
IList<Google.Apis.Drive.v3.Data.File> files = listRequest.Execute().Files; 
Console.WriteLine("Files:"); 
if (files != null && files.Count > 0) 
{ 
    foreach (var file in files) 
    { 
     Console.WriteLine("{0} ({1})", file.Name, file.Id); 
    } 
} 
else 
{ 
    Console.WriteLine("No files found."); 
} 
Console.Read(); 

私は、開発者のためのGoogleドライブのウェブ上で自分の資格情報を取得しなければなりませんでした。 このコードはうまく機能しますが、アプリケーションのすべてのユーザーが独自のGoogleドライブの認証情報を手動で生成する必要があり、自動化する方法がわかりません。

私の目的は、Googleのメールとパスワードの入力用に2つのボックスを表示し、認証のための作業を行い、成功すればそのファイルにアクセスできるようにすることです。

+0

この[URL](http://stackoverflow.com/help)をチェックしてください。コンテンツの品質を上げることが便利です –

答えて

0

オープン認証の世界へようこそ。あなたのアプリケーションがユーザーデータにアクセスするためには、アプリケーションにデータにアクセスする権限を与えるか、または「権限を付与する」必要があります。送信するスコープは、アプリケーションを実行するために必要なアクセス許可をユーザーに伝えるために使用されるスコープです。彼らは、あなたのアプリケーションにこれらの権限を許可するように頼むポップアップウィンドウが表示されます。許可されると、そのデータにアクセスできます。

アカウントにアクセスするためにユーザーにログインとパスワードを要求することは、クライアントログインと呼ばれます。クライアントのログインは2015年にGoogleによって停止されました。ログインとパスワードを使用して自分のアカウントにアクセスすることはできません。 Oauth2を使用して、コードが現在行っているようにアクセスを要求する必要があります。

コードはそのまま動作し、正常に動作しています。彼らはあなたがそれをクリックしなければならない承認を自動化できません。

+0

まず、問題を読んで答える時間をとっていただきありがとうございます。すべての私の研究とあなたの答えの後、自分のアイデアを現実のものにすることは不可能だと思う。自分のGoogleドライブにアクセスするユーザーを提供するアプリケーションを開発する方法がないから、常に開発者の資格情報を生成するapiの機能にアクセスする。 –

+0

ユーザーは一度アプリケーションを承認する必要があります。 – DaImTo

+0

はい、これは、ユーザーがアプリケーションを通して1つのドライブとしかやりとりする方法ではありません。 私の目標は、Google APIによって可能ならば、すべてのユーザーが自分のアプリケーションにログインし、自分のGmailやパスワードでアクセスします(アプリケーションやブラウザで)。何らかの種類のリストのアプリケーション。しかし、私がこの権利を理解しているならば、それを行うための唯一の方法はすべてのユーザーの開発者資格情報を生成することです。それは私の問題です –

関連する問題