gpt4 book ai didi

asp.net - 动态创建和共享 Google 云端硬盘文件夹

转载 作者:行者123 更新时间:2023-12-02 07:07:01 25 4
gpt4 key购买 nike

我有一个电子邮件列表。

对于每封电子邮件,我需要创建一个 Google 云端硬盘文件夹并将其与给定的电子邮件共享。

我怎样才能以编程方式做到这一点?

我使用的是 ASP.NET 4.0。

最佳答案

首先,您需要确保您的应用程序具有 clientid/secret 并配置了正确的重定向 uri。就我而言 - 这是一个桌面应用程序:

enter image description here

到目前为止,您将获得 clientId/ key :

enter image description here

现在是时候编写一些代码了!

第 1 步 - 授权:

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

第 2 步 - 构建适用于 Google Drive 的客户端:

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

对于电子邮件列表,您可以为您拥有的每封电子邮件执行相同的操作,循环创建/共享内容。

一些有用的链接:

Creating files

Sharing files

还有您需要Google.Apis.Drive.v2 nuget包

关于asp.net - 动态创建和共享 Google 云端硬盘文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22907522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com