2016-06-14 1 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 이메일 및 비밀번호 입력을위한 두 개의 상자를 표시하는 사용자 인터페이스를 제공 한 다음 인증을 위해 작업을 수행하고 성공하면 사용자는 해당 파일에 액세스 할 수 있습니다.

+0

이 URL [URL] (http://stackoverflow.com/help)을 확인하십시오. 콘텐츠 품질을 높이는 것이 유용 할 것입니다. –

답변

0

오픈 인증 세계에 오신 것을 환영합니다. 응용 프로그램이 사용자 데이터에 액세스하려면 응용 프로그램에 데이터에 액세스하거나 "권한 부여"권한을 부여해야합니다. 전송중인 범위는 응용 프로그램을 실행하기 위해 필요한 사용 권한을 사용자에게 알려주는 데 사용됩니다. 그들은 이러한 권한으로 애플리케이션을 승인하도록 요청하는 팝업 창이 나타납니다. 일단 부여되면 데이터에 액세스 할 수 있습니다.

사용자가 계정에 액세스하기 위해 로그인 및 암호를 묻는 것을 클라이언트 로그인이라고합니다. 2015 년 Google에서 고객 로그인을 종료했지만 로그인 및 비밀번호로 계정에 액세스 할 수 없습니다. Oauth2를 사용해야하며 현재 코드가 수행중인 것처럼 액세스를 요청해야합니다.

코드는 그대로 작동하며 정상적으로 작동합니다. 당신은 자동으로 그곳에서 그것을 클릭해야만하는 승인을 자동화 할 수 없습니다.

+0

먼저 내 문제를 읽고 답변 해 주셔서 감사합니다. 내 모든 연구와 답변을 통해 자신의 Google 드라이브에 액세스하는 사용자를 제공하는 애플리케이션을 개발할 수있는 방법이 없기 때문에 자신의 아이디어를 현실적으로 실현하는 것이 더 현실적이라는 것을 알게 된 후에는 개발자의 자격 증명을 생성해야합니다. API의 기능에 액세스합니다. –

+0

사용자는 한 번만 응용 프로그램을 승인하면됩니다. – DaImTo

+0

예. 그렇지만 사용자가 응용 프로그램을 통해 하나의 드라이브와 상호 작용할 수있는 방법은 내가 아는 한 것입니다. 내 목표는 Google API로 할 수 있다면 모든 사용자가 내 응용 프로그램에 로그인하고 Gmail과 암호로 (응용 프로그램 또는 브라우저에서) 액세스 한 다음 개인 드라이브의 파일을 볼 수 있다는 것입니다. 어떤 종류의 목록에있는 응용 프로그램. 그러나이 권리를 이해하고 있다면이를 수행하는 유일한 방법은 모든 사용자에 대한 개발자 자격 증명을 생성하는 것입니다. 내 문제입니다. –

관련 문제