PHP EWS с использованием токена обратного вызова

Кому-нибудь повезло с аутентификацией для запроса EWS SOAP от PHP с использованием токена обратного вызова EWS вместо имени пользователя / пароля? Я смотрел проект PHP-EWS, который появляется, когда вы ищете это в Google, но насколько я могу судить, он поддерживает только аутентификацию по имени пользователя и паролю.

Вот пример того, как делать то, что я хочу сделать, но он использует C #, а не PHP, и я не могу понять, как преобразовать происходящее здесь во что-то, что я могу использовать в PHP. http://msdn.microsoft.com/en-us/library/dn148008(v=office.15)

Я работаю над приложением Outlook Mail, которое позволит моим пользователям сохранять текущее электронное письмо, которое они просматривают, в нашей базе данных, связанной с конкретным клиентом. Я фактически перестраиваю старую надстройку Outlook, которая была изначально построена с использованием VB.net несколько лет назад. Новая архитектура для надстроек Outlook позволяет создавать приложения, которые запускаются в Outlook на настольных компьютерах, мобильных устройствах и в OWA. К сожалению, новая архитектура не обеспечивает такой прямой доступ к почтовым сообщениям в самом приложении. Вместо этого вы должны использовать метод getCallbackTokenAsync в приложении, чтобы получить токен, который вы передаете вместе с URL-адресом EWS и идентификатором элемента на свой веб-сервер, чтобы сервер мог сделать запрос SOAP непосредственно на сервер Exchange для получения свойств из почтовый элемент, например вложения.


person OneSimpleGeek    schedule 11.09.2014    source источник


Ответы (1)


У нас нет примера PHP, но чтобы сделать правильный запрос, сначала создайте тело запроса (сам запрос SOAP EWS), затем установите заголовок авторизации как «носитель» и поместите токен сразу после него. Должно получиться так по проводу «Авторизация: Bearer abcdef1234 ... ==»

Какая именно у вас проблема? Можете ли вы поделиться кодом, который вы написали для создания веб-запроса?

Кроме того, здесь есть специальный форум для офисных приложений: http://social.msdn.microsoft.com/Forums/office/en-US/home?forum=appsforoffice

person AndrewS    schedule 16.09.2014
comment
Моя основная проблема заключается в том, что во всех примерах, которые я смог найти, в которых используется PHP, используется аутентификация NTLM, которая, как я полагаю, мне не нужна, потому что я аутентифицирую токен, а не комбинацию имени пользователя и пароля. Я попробую и прокомментирую свои результаты. - person OneSimpleGeek; 23.09.2014
comment
Спасибо AndrewS за подсказку о формате шапки. Мне удалось изменить библиотеку php ews, которую я нашел на github, чтобы использовать токен обратного вызова для аутентификации вместо имени пользователя / пароля. Если кто-то заинтересован в этом, вам просто нужно изменить NTLMSoapClient.php, чтобы метод __doRequest класса NTLMSoapClient добавил http-заголовок Authorization: Bearer. $ YourCallbackToken и убедитесь, что вы изменили этот метод, чтобы не включать вызовы curl_setopt, которые устанавливают аутентификация по имени пользователя / паролю. - person OneSimpleGeek; 24.09.2014
comment
Потрясающий! Рад, что это сработало. Дайте нам знать, если у вас возникнут другие вопросы. - person AndrewS; 25.09.2014