Создайте папку в каталоге Specifi c на диске Sharepoint с помощью Graph SDK - PullRequest
0 голосов
/ 04 мая 2020

как сделать это реальным, используя только данный URL и возможно ли это, idk?

что я пытаюсь сделать:

Создание папки в указанном c месте на диске в соответствии со строкой.
эта строка состоит из 3-х частей (каждая часть представляет папку легко!), Например, mystring = "Analyse_General_Theory", путь в диске должен быть следующим : Анализировать / Общее / Теория

так:

мое воображение для решения будет выглядеть так:)

передача моей строкиUrl в Build Затем запросите публикацию моей папки

stringUrl = "https://CompanyDomin.sharepoint.com/sites/mySite/SharedFolders/Analyse/General/Theory"

, затем

await graphClient.Request(stringUrl).PostAsync(myLastFolder) !!! 

, чтобы получился результат!

Анализ / Общее / Теория / myLastFolder

Есть ли что-нибудь подобное? или может быть похож на этот подход?

1 Ответ

1 голос
/ 05 мая 2020

Если вы хотите использовать Graph API для создания папки в SharePoint, используйте следующее Microsoft graph Rest API . Потому что Azure API графа AD просто может использоваться для управления Azure AD ресурсами (такими как пользователь, группа и т. Д. c) и не может использоваться для управления ресурсами SharePoint. Если мы хотим управлять ресурсами SharePoint с помощью Graph API, нам нужно использовать Microsoft Graph API

POST https://graph.microsoft.com/v1.0/sites/{site-id}/drive/items/{parent-item-id}/children

Например,

POST https://graph.microsoft.com/v1.0/sites/CompanyDomin.sharepoint.com/drive/items/root:/
{folder path}:/children

{
  "name": "<the new folder name>",
  "folder": { },
  "@microsoft.graph.conflictBehavior": "rename"
}

Что касается его реализации с помощью SDK, пожалуйста, обратитесь к следующим шагам:

  1. Регистрация Azure Приложение AD

  2. Создать секрет клиента .

  3. Добавить разрешения API для приложения. Пожалуйста, добавьте Разрешения приложения: Files.ReadWrite.All и Sites.ReadWrite.All.

  4. Код. Я использую поток учетных данных клиента.

/* please run the following command install sdk Microsoft.Graph and Microsoft.Graph.Auth 

   Install-Package Microsoft.Graph
   Install-Package Microsoft.Graph.Auth -IncludePrerelease

*/

 string clientId = "<your AD app client id>";
            string clientSecret = "<your AD app client secret>";
            string tenantId = "<your AD tenant domain>";
            IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
                        .Create(clientId)
                        .WithTenantId(tenantId)
                        .WithClientSecret(clientSecret)
                        .Build();

            ClientCredentialProvider authProvider = new ClientCredentialProvider(confidentialClientApplication);
            GraphServiceClient graphClient = new GraphServiceClient(authProvider);
            var item = new DriveItem
            {

                Name = "myLastFolder",
                Folder= new Folder { },
                AdditionalData = new Dictionary<string, object>()
                    {
                        {"@microsoft.graph.conflictBehavior","rename"}
                    }
            };
            var r = await graphClient.Sites["<CompanyDomin>.sharepoint.com"].Drive.Items["root:/Analyse/General/Theory:"].Children.Request().AddAsync(item);
            Console.WriteLine("the folder name : " + r.Name);

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...