asp.net - Create and share Google Drive folders dynamically -


i have list of emails.

for each email, need create google drive folder , share given email.

how can programmically?

i using asp.net 4.0.

first of need make sure have application clientid/secret , correct redirect uri configured. case - it's desktop application:

enter image description here

so far you'll clientid/secret key:

enter image description here

now it's time write codes!

step 1 - authorization:

private async static task<usercredential> auth(clientsecrets clientsecrets) {        return await googlewebauthorizationbroker.authorizeasync(clientsecrets, scopes, "user", cancellationtoken.none); } 

step 2 - construct client google drive:

private static driveservice getservice(usercredential credential) {     return new driveservice(new baseclientservice.initializer()     {         httpclientinitializer = credential,         applicationname = "myapplicationname",     }); } 

step 3 - create folder (or other content):

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

step 4 - share it!

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

and usage of whole thing:

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, "user@gmail.com", "user", "reader"); } 

for list of emails can pretty same thing creating/sharing content in loop every email have.

some usefull links:

creating files

sharing files

also you'll need google.apis.drive.v2 nuget package


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -