Hallo zusammen
Ich versuche schon seit längerem bei unserer 3CX Pro (on-prem) die MS365 Kontakte von einem öffentlichen Kontaktordner zu importieren.
Es existiert ein Impersonated MS365 User (hat Exchange Online LIzenz). Habe via OWA verifiziert, dass der auch Zugriff auf diesen öffentlichen Ordner hat.
In 3CX-Konsole unter Kontakte -> Exchange habe ich folgende Einstellungen hinterlegt:
Exchange-Server-URL: https://outlook.office365.com/EWS/Exchange.asmx
Impersonated-User-Konto: 3CX@***.onmicrosoft.com
Passwort: habe das mehrfach verifiziert
Pfad öffentliche Ordner: Kontakte/Alle
Im SystemService.log File kommen folgende Zeilen:
2022/09/19 15:49:13.356|13288|0021|Info|Synchronization of public folders started...
2022/09/19 15:49:13.358|13288|0021|Info|Synchronization of Public Folder Kontakte/Alle started...
2022/09/19 15:49:13.696|13288|0018|Erro|Error while checking contacts from Public Folder Kontakte/Alle
2022/09/19 15:49:13.721|13288|0018|Excpt|Microsoft.Exchange.WebServices.Data.ServiceRequestException: The request failed. The remote server returned an error: (401) .
---> System.Net.WebException: The remote server returned an error: (401) .
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.WebRequest.<>c.<GetResponseAsync>b__68_2(IAsyncResult iar)
at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- End of stack trace from previous location ---
at Microsoft.Exchange.WebServices.Data.EwsHttpWebRequest.Microsoft.Exchange.WebServices.Data.IEwsHttpWebRequest.GetResponse()
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request)
--- End of inner exception stack trace ---
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request)
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest()
at Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.InternalExecuteAsync()
at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.ExecuteAsync()
at Microsoft.Exchange.WebServices.Data.ExchangeService.FindFolders(FolderId parentFolderId, FolderView view)
at Integration.Exchange.Contacts.PublicFolderExtensions.GetTopLevelFolder(ExchangeService service, String folderName)
at Integration.Exchange.Contacts.PublicFolderExtensions.GetPublicFolderByPath(ExchangeService service, String ewsFolderPath)
at Integration.Exchange.Contacts.PublicFolderExtensions.GetContactsFromPublicFolder(ExchangeService service, Int32 id, String PublicFolder, String ConvertPlusTo)
at Integration.Exchange.SchedulerJob.SynchronizePublicFolderContacts(String FolderName)
Kann mir da jemand weiterhelfen? Hat das evt. zu tun mit OAuth von MS365?
Vielen Dank im Voraus und Grüsse
R.
Ich versuche schon seit längerem bei unserer 3CX Pro (on-prem) die MS365 Kontakte von einem öffentlichen Kontaktordner zu importieren.
Es existiert ein Impersonated MS365 User (hat Exchange Online LIzenz). Habe via OWA verifiziert, dass der auch Zugriff auf diesen öffentlichen Ordner hat.
In 3CX-Konsole unter Kontakte -> Exchange habe ich folgende Einstellungen hinterlegt:
Exchange-Server-URL: https://outlook.office365.com/EWS/Exchange.asmx
Impersonated-User-Konto: 3CX@***.onmicrosoft.com
Passwort: habe das mehrfach verifiziert
Pfad öffentliche Ordner: Kontakte/Alle
Im SystemService.log File kommen folgende Zeilen:
2022/09/19 15:49:13.356|13288|0021|Info|Synchronization of public folders started...
2022/09/19 15:49:13.358|13288|0021|Info|Synchronization of Public Folder Kontakte/Alle started...
2022/09/19 15:49:13.696|13288|0018|Erro|Error while checking contacts from Public Folder Kontakte/Alle
2022/09/19 15:49:13.721|13288|0018|Excpt|Microsoft.Exchange.WebServices.Data.ServiceRequestException: The request failed. The remote server returned an error: (401) .
---> System.Net.WebException: The remote server returned an error: (401) .
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.WebRequest.<>c.<GetResponseAsync>b__68_2(IAsyncResult iar)
at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- End of stack trace from previous location ---
at Microsoft.Exchange.WebServices.Data.EwsHttpWebRequest.Microsoft.Exchange.WebServices.Data.IEwsHttpWebRequest.GetResponse()
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request)
--- End of inner exception stack trace ---
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request)
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest()
at Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.InternalExecuteAsync()
at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.ExecuteAsync()
at Microsoft.Exchange.WebServices.Data.ExchangeService.FindFolders(FolderId parentFolderId, FolderView view)
at Integration.Exchange.Contacts.PublicFolderExtensions.GetTopLevelFolder(ExchangeService service, String folderName)
at Integration.Exchange.Contacts.PublicFolderExtensions.GetPublicFolderByPath(ExchangeService service, String ewsFolderPath)
at Integration.Exchange.Contacts.PublicFolderExtensions.GetContactsFromPublicFolder(ExchangeService service, Int32 id, String PublicFolder, String ConvertPlusTo)
at Integration.Exchange.SchedulerJob.SynchronizePublicFolderContacts(String FolderName)
Kann mir da jemand weiterhelfen? Hat das evt. zu tun mit OAuth von MS365?
Vielen Dank im Voraus und Grüsse
R.