Saya mencoba membuat folder di SharePoint Online dengan url situs https://example.sharepoint.com/ Situs Saya

Saya benar-benar tidak peduli apa pun tentang daftar SharePoint, tetapi saya tidak dapat menemukan informasi apa pun tentang SharePoint API yang menyembunyikan detail implementasi ini dari konsumen, atau dokumentasi apa pun yang mengantisipasi kebutuhan saya dengan cukup baik untuk memberi tahu saya apa yang perlu saya lakukan, jadi saya berjuang untuk bekerja dengan Daftar.

Saat ini, saya hanya ingin mendaftar daftar apa pun yang ada di situs saya. Situs saya memiliki beberapa konten minimalis, jadi saya berharap di dunia jika semuanya memiliki daftar, harus ada beberapa daftar yang terlibat dan saya harus dapat mencantumkannya.

Saya memiliki kode berikut:

            using (ClientContext context = _authenticationManager.GetContext())
            {
                Web web = context.Web;
                context.Load(web.Lists, lists => lists.Include(list => list.Title, list => list.Id));
                context.ExecuteQuery();

                foreach (List list in web.Lists)
                {
                    _logger.LogInformation(list.Title);
                }
            }

Saya dapat menggunakan debugger dan konsol untuk mengonfirmasi bahwa AuthenticationManager berhasil membuat token autentikasi.

Saat kode dijalankan, context.ExecuteQuery(); menghasilkan kesalahan berikut:

[14:49:48 INF] Berhasil meminta sumber daya token akses baru example.sharepoint.com untuk pengguna someuser@somemail.foo [14:49:48 ERR] Pengecualian yang tidak tertangani telah terjadi saat menjalankan permintaan. System.Net.WebException: Server jarak jauh mengembalikan kesalahan: (404) Tidak Ditemukan. di System.Net.HttpWebRequest.GetResponse() di Microsoft.SharePoint.Client.SPWebRequestExecutor.Execute() di Microsoft.SharePoint.Client.ClientRequest.ExecuteQueryToServer(ChunkStringBuilder sb) di Microsoft.SharePoint.Client.ClientRequest.ExecuteQuery() di Microsoft.SharePoint.Client.ClientRuntimeContext.ExecuteQuery() di Microsoft.SharePoint.Client.ClientContext.ExecuteQuery() di SharePointOrderContractExtractor.Clients.Client.CreateFolder(String folderName) di C:\projects\SharepointOrderContractExtractor\SharepointOrderContractExtractor\Clients\Sharepoint\Client.cs:line 34 di SharePointOrderContractExtractor.Services.SharePointService.CreateDestination(Daftar1 orderNumbers) in C:\projects\SharepointOrderContractExtractor\SharepointOrderContractExtractor\Services\SharepointService.cs:line 128 at SharePointOrderContractExtractor.Services.SharePointService.CollectForAsync(List1 orderNumbers) di C:\projects\SharepointOrderContractExtractor\SharepointOrderContractExtractor\Services\SharepointService.cs:line 95 di SharePointOrderContractExtractor.Services.SharePointService.FetchContractsAsync(FileUploadModel uploadModel) di C:\projects\SharepointOrderContractExtractor\SharepointOrderContractExtractor\Services\SharepointService.cs:line 51 di SharePointOrderContractExtractor.Controllers.V1_0.SharePointController.Upload(FileUploadModel uploadModel) di C:\projects\SharepointOrderContractExtractor\SharepointOrderContractExtractor\Controllers\V1_0\SharepointController.cs:line 48 di Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, pelaksana ObjectMethodExecutor, Object controller, Object[] argumen) di Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Logged|12_1(Invoker ControllerActionInvoker) di Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|10_0(Invoker ControllerActionInvoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) di Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(Konteks ActionExecutedContextSealed) di Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) di Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|13_0(Invoker ControllerActionInvoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) di Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|19_0(Invoker ResourceInvoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) di Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(pemanggil ResourceInvoker) di Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger) di Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider) di Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke (konteks HttpContext) di Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke (konteks HttpContext) di Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext) di Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke (konteks HttpContext)

Apa yang saya lewatkan dan/atau lakukan salah? Bagaimana saya bisa memperbaiki ini?

1
Brian Kessler 20 November 2020, 17:01

1 menjawab

Jawaban Terbaik

Dengan terima kasih kepada @arconaut atas pertanyaannya di komentar:

Tampaknya Manajer Otentikasi hanya menggunakan domain, bukan URL lengkap untuk mengautentikasi.

Meskipun URL situs saya disetel ke https://example.sharepoint.com/MySite, seharusnya telah https://example.sharepoint.com/sites/MySite.

(Saya pikir saya menghapus "situs" dari konfigurasi ketika mencoba mengikuti beberapa dokumentasi yang mungkin tidak cocok dengan versi Salesforce saya.)

0
Brian Kessler 20 November 2020, 14:31