2014-04-07 36 views
10

Tôi có một danh sách email.Tạo và chia sẻ thư mục Google Drive động

Đối với mỗi email, tôi cần phải tạo thư mục Google Drive và chia sẻ nó với email đã cho.

Tôi làm cách nào để thực hiện chương trình?

Tôi đang sử dụng ASP.NET 4.0.

+2

Google nó. https://developers.google.com/drive/v2/reference/ –

Trả lời

7

Trước hết bạn cần phải chắc chắn rằng bạn có ứng dụng với ClientID/bí mật và chính xác uri chuyển hướng cấu hình. Đối với trường hợp của tôi - đó là một ứng dụng máy tính để bàn:

enter image description here

Cho đến nay bạn sẽ nhận được ClientId/khóa bí mật:

enter image description here

Bây giờ là thời gian để viết một số mã!

Bước 1 - ủy quyền:

private async static Task<UserCredential> Auth(ClientSecrets clientSecrets) 
{ 
    return await GoogleWebAuthorizationBroker.AuthorizeAsync(clientSecrets, Scopes, "user", CancellationToken.None); 
} 

Bước 2 - xây dựng khách hàng của bạn cho Google Drive:

private static DriveService GetService(UserCredential credential) 
{ 
    return new DriveService(new BaseClientService.Initializer() 
    { 
     HttpClientInitializer = credential, 
     ApplicationName = "MyApplicationName", 
    }); 
} 

Bước 3 - tạo thư mục (hoặc bất kỳ nội dung khác):

private static string CreateFolder(DriveService service, string folderName) 
{ 
    var file = new File {Title = folderName, MimeType = "application/vnd.google-apps.folder"}; 
    var result = service.Files.Insert(file).Execute(); 
    return result.Id; 
} 

Bước 4 - chia sẻ!

/// <summary> 
/// Share content. Doc link: https://developers.google.com/drive/v2/reference/permissions/insert 
/// </summary> 
private static void Share(DriveService service, string fileId, string value, string type, string role) 
{ 
    var permission = new Permission {Value = value, Type = type, Role = role}; 
    service.Permissions.Insert(permission, fileId).Execute(); 
} 

Và cuối cùng sử dụng toàn bộ điều:

static void Main(string[] args) 
{ 
    var ClientId = "MySecredId"; 
    var SecretKey = "MySecretKey"; 

    var Scopes = new[] { DriveService.Scope.DriveFile, DriveService.Scope.Drive }; 

    var secrets = new ClientSecrets { ClientId = ClientId, ClientSecret = SecretKey }; 
    var credentials = Auth(secrets).Result; 

    var service = GetService(credentials); 

    var folderId = CreateFolder(service, "folderName"); 

    Share(service, folderId, "[email protected]", "user", "reader"); 
} 

Đối với danh sách các email bạn có thể làm đẹp cùng một nội dung điều tạo/chia sẻ trong một vòng lặp cho mỗi email mà bạn có.

Một số liên kết hữu ích:

Creating files

Sharing files

Cũng Bạn sẽ cần Google.Apis.Drive.v2 NuGet gói

+0

Tìm thấy 'DriveService' ở đâu? –

+0

Điều tương tự cũng xảy ra với 'Tệp' và' Quyền '. –

+2

@Endri, tất cả đều là Google.Apis.Drive.v2. Cài đặt gói đó cho giải pháp (nó có nhiều phụ thuộc) – Sergio

4

Các bước để thực hiện bản lề này khi xác thực với Google trước tiên. Khi bạn đã hoàn tất, bạn sẽ có thể truy cập API Drive để thực hiện các tác vụ bạn muốn. Các liên kết sau sẽ hướng dẫn bạn qua mọi thứ bạn cần làm.

Bước 1: Xác thực (phía máy chủ trong trường hợp của bạn khi bạn đang sử dụng ASP.NET) https://developers.google.com/drive/web/auth/web-server

Bước 2: Tạo thư mục của bạn https://developers.google.com/drive/web/folder

Bước 3: Chia sẻ thư mục của bạn https://developers.google.com/drive/web/manage-sharing

2

Hãy xem trong liên kết bên dưới. Nó có khóa học đầy đủ trên Google Drive !!

https://www.codeschool.com/courses/discover-drive

+1

Đó là trong Ruby. Tôi đang tìm một phương pháp tiếp cận ASP.net + C#! –

+0

đơn giản chỉ với tập lệnh html và java và bạn có thể dễ dàng chuyển đổi nó trong ASP.net !! –

Các vấn đề liên quan