2017-09-12 1 views
1

Ich muss mehrere EWS-Anforderungen verwenden (z. B. GetUserConfiguration, UpdateUserConfiguration), die nicht unter Verwendung von Office.context.mailbox.makeEwsRequestAsync unterstützt werden.Verwenden von EWS-SOAP-Anforderungen in einem Outlook-Web-Add-In

Ich kann die verwaltete EWS-API in meinem eigenen Webdienst nicht als Broker verwenden und muss XML-SOAP-Anforderungen direkt aus dem JavaScript des Add-Ins verwenden (diese Methoden sind in den Graph- oder Mail-APIs nicht verfügbar).

Es gibt viele Beispiele (wie this) zeigt, wie getUserIdentityTokenAsync kann dazu verwendet werden, dass die Token an Ihren Web-Service (wieder, die ich nicht verwenden können) passieren dort zu verwenden, in welcher Weise auch immer Sie es brauchen.

Ich vermute jedoch, das Token von getUserIdentityTokenAsync abgerufen ist anders und kann nicht verwendet werden. Als einfacher und hoffentlich angemessener Test erhielt ich einen OAUTH-Token für meinen O365-Account und benutzte diesen als Token unter Verwendung von SOAPe für einen Test GetUserConfiguratio n Anruf und es funktionierte. Ich habe dann versucht, den Token von getUserIdentityTokenAsync und es hat nicht funktioniert (401 Unauthorized).

Ich gebe zu, dass dies ein schlechter Test sein kann, und ich gebe zu, dass mir an diesem Punkt unklar ist, wie eine SOAP EWS-Anfrage von JavaScript in einem Outlook-dd-in authentifiziert werden kann, ohne eine explizite Benutzeranmeldung (hoffentlich es kann). Und wenn es geht, wie bekomme ich das Token, das ich brauche, und wie verwende ich es für diese Art von clientseitiger Anfrage?

+1

Als Workaround sind die Benutzerkonfigurationsobjekte nur FAI-Objekte im Ordner. Daher können Sie möglicherweise einfach FindItems, GetItem und UpdateItem verwenden, um die zugrunde liegenden erweiterten Eigenschaften für das Benutzerkonfigurationsobjekt zu aktualisieren. –

+0

Gute Idee, danke Glen! Ich bin bereits an den Punkt gekommen, IPM.Configuration.OWA.UserOptions von GetItem zu erhalten, aber ich weiß derzeit nicht, wie man die DictionaryEntry-Werte in die Antwort einfügt (z. B. signaturetml und dessen Wert). –

+1

Es ist nur ein serialisiertes XML dokumentiert https://msdn.microsoft.com/en-us/library/office/cc765806.aspx zB einfach das XML in ein Byte-Array konvertieren und es in die PR_Roaming_Dictionary-Eigenschaft veröffentlichen. (Sie müssen zuerst den vorhandenen Wert abrufen und dann anhängen). –

Antwort

0

Vielleicht möchten Sie in diesem Fall Ews-Javascript-API-Helper verwenden. Hier finden Sie ein Beispiel für die Verwendung von Outlook-Add-Ins. https://github.com/gautamsi/ews-js-api-browser#working-with-plain-jsts-no-module-loadersbundlers

Sie können jede zulässige API (verfügbar in makeEwsRequestAsync) mit dieser Bibliothek verwenden. mit ähnlichen API, was in Ews verwaltet Api verfügbar ist.

+0

Interessant - nicht sicher, wie ich das verpasst habe! Ich werde versuchen, einen Blick darauf zu werfen, aber ich werde nie jetzt, da dieses Projekt über lol ist –

Verwandte Themen