У меня есть список писем.
Для каждого письма мне нужно создать папку с Google Диском и поделиться им с данным электронным письмом.
Как я могу сделать это программно?
Я использую ASP.NET 4.0.
У меня есть список писем.
Для каждого письма мне нужно создать папку с Google Диском и поделиться им с данным электронным письмом.
Как я могу сделать это программно?
Я использую ASP.NET 4.0.
Прежде всего, вам нужно убедиться, что у вас есть приложение с clientid/secret и исправлено перенаправление uri. Для моего случая - это настольное приложение:
Пока вы получите клиентский/секретный ключ:
Теперь пришло время написать несколько кодов!
Шаг 1 - авторизация:
private async static Task<UserCredential> Auth(ClientSecrets clientSecrets)
{
return await GoogleWebAuthorizationBroker.AuthorizeAsync(clientSecrets, Scopes, "user", CancellationToken.None);
}
Шаг 2 - создайте свой клиент для диска Google:
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");
}
В списке писем вы можете сделать то же самое, что создаете/делитесь контентом в цикле для каждого вашего письма.
Некоторые полезные ссылки:
Совместное использование файлов
И Вам понадобится Google.Apis.Drive.v2 пакет nuget
Шаги, чтобы выполнить эту привязку при аутентификации с помощью Google в первую очередь. Как только вы это сделаете, вы сможете получить доступ к API-интерфейсу Drive для выполнения необходимых действий. Следующие ссылки охватывают все, что вам нужно.
Шаг 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
Посмотрите ниже ссылку. Это полный курс на Google Диске!