2014-04-07 8 views
10

मेरे पास ईमेल की एक सूची है।गतिशील रूप से Google ड्राइव फ़ोल्डर्स बनाएं और साझा करें

प्रत्येक ईमेल के लिए, मुझे एक Google ड्राइव फ़ोल्डर बनाने और उसे दिए गए ईमेल के साथ साझा करने की आवश्यकता है।

मैं इसे प्रोग्रामिक तरीके से कैसे कर सकता हूं?

मैं एएसपी.NET 4.0 का उपयोग कर रहा हूं।

+2

गूगल। https://developers.google.com/drive/v2/reference/ –

उत्तर

7

सबसे पहले क्या आप वाकई clientid/गुप्त और सही रीडायरेक्ट uri को कॉन्फ़िगर किए गए आवेदन किया है बनाने की जरूरत है।

enter image description here

अब तक आप clientid/गुप्त कुंजी मिल जाएगा:

enter image description here

अब यह कुछ कोड लिखने के लिए समय आ गया है - मेरे मामले के लिए यह एक डेस्कटॉप अनुप्रयोग है!

चरण 1 - प्राधिकरण:

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

चरण 2 - निर्माण गूगल के लिए अपने ग्राहक ड्राइव:

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

चरण 3 - फ़ोल्डर बनाने के (या किसी अन्य सामग्री):

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; 
} 

चरण 4 - इसे साझा करें!

/// <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(); 
} 

और अंत में पूरी बात का उपयोग:

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"); 
} 

ईमेल आप हर ईमेल के लिए एक पाश में बहुत ही बात बनाने/सामग्री साझा करना क्या कर सकते हैं की सूची के लिए।

कुछ उपयोगी लिंक्स:

Creating files

Sharing files

इसके अलावा आप Google.Apis.Drive.v2 की आवश्यकता होगी पैकेज nuget

+0

'ड्राइव सेवा' कहां मिली है? –

+0

वही 'फ़ाइल' और' अनुमति 'के लिए जाता है। –

+2

@ एंड्री यह सब Google है। एपिस.ड्राइव.वी 2। समाधान के लिए उस पैकेज को स्थापित करें (इसमें निर्भरता का समूह है) – Sergio

4

Google के साथ प्रमाणीकरण पर इस कगार को करने के लिए चरण। एक बार ऐसा करने के बाद आप अपने इच्छित कार्यों को करने के लिए ड्राइव एपीआई तक पहुंच पाएंगे। निम्नलिखित लिंक आपको जो भी करने की ज़रूरत है, उसके माध्यम से चलते हैं।

चरण 1: (के रूप में आप ASP.NET का उपयोग कर रहे अपने मामले में सर्वर साइड) के लिए प्रमाणीकृत https://developers.google.com/drive/web/auth/web-server

चरण 2: अपने फ़ोल्डर बनाना https://developers.google.com/drive/web/folder

चरण 3: साझा अपने फ़ोल्डर्स https://developers.google.com/drive/web/manage-sharing

2

नीचे दिए गए लिंक पर एक नज़र डालें। Google ड्राइव पर इसका पूरा कोर्स है !! सब से

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

+1

वह रूबी में है। मैं एक एएसपीनेट + सी # दृष्टिकोण की तलाश में हूं! –

+0

इसकी बस एचटीएमएल और जावा स्क्रिप्ट के साथ है और आप आसानी से एएसपीनेट में इसे परिवर्तित कर सकते हैं !! –

संबंधित मुद्दे