Невозможно получить URL-адрес приложения для Skype для бизнеса

Я пытаюсь использовать REST API в Skype для бизнеса Online, следуя инструкциям здесь: https://msdn.microsoft.com/EN-US/library/office/mt590891(v=office.16).aspx.

Я делаю первый вызов службы обнаружения, а затем возвращаю URL-адрес обнаружения пользователю; для меня это выглядит так: https://webdir0b.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user

Затем я звоню в Azure и успешно получаю обратно токен доступа для https://webdir0b.online.lync.com < / а>. На следующем этапе все ломается - я снова делаю запрос на URL-адрес обнаружения для пользователя и включаю токен доступа. Вызов возвращается успешно, но проблема в том, что в полезной нагрузке отсутствует URL-адрес «приложения», как описано в документации. Вместо этого он возвращает ту же точную информацию, которую я получил, когда вызвал общую конечную точку обнаружения (https://webdir.online.lync.com/autodiscover/autodiscoverservice.svc/root). Я трижды проверил, что вызываю правильную конечную точку, поэтому ... какие-либо намеки на то, почему я не получаю ожидаемую полезную нагрузку при вызове URL-адреса обнаружения для пользователя?


person Steve Peschka    schedule 24.05.2016    source источник
comment
Ладно ... какого черта. Я продолжал ковыряться в этом, и - однажды - он действительно вернул правильную полезную нагрузку. Просто по счастливой случайности я заметил, что он перешел на другой сервер, так что ... этот API не работает на всех серверах SFB? В частности, сейчас, если я жестко запрограммирую конечную точку обнаружения на webdir1a.online .lync.com / Autodiscover / AutodiscoverService.svc /, то я получаю правильные данные. Если я просто возьму то, что дает мне общая конечная точка обнаружения, то она будет терпеть неудачу каждый раз, если только она не попадет на этот сервер. Так в чем же дело ??   -  person Steve Peschka    schedule 25.05.2016
comment
Было бы интересно увидеть след запроса / ответа, чтобы увидеть более широкую картину, поскольку вас не следует направлять обратно в точку A, если вы уже прошли эту точку. Если у вас не получается, вы можете подумать о том, чтобы получить трассировку Fiddler и обратиться к MSFT, поскольку при включении каждого онлайн-пользователя могут возникнуть некоторые незначительные затруднения, и вы можете оказаться одним из немногих неудачников.   -  person ShelbyZ    schedule 07.06.2016
comment
Я постараюсь ответить как можно короче - у меня это работает. 1-я проблема - когда вы не получаете приложения в результате, вместо этого у вас должно быть значение перенаправления. Продолжайте следить за этим и выполняйте GET против него (используя процесс получения токенов доступа и добавления заголовка auth), и в конечном итоге вы должны получить URL-адрес приложения. Вторая проблема - после того, как вы получите URL-адрес приложения, вам нужно получить еще один токен доступа и использовать имя хоста URL-адреса приложения в качестве идентификатора ресурса. Затем вы можете опубликовать и создать свое приложение. Очень надеюсь, что это кому-то поможет. :-)   -  person Steve Peschka    schedule 07.06.2016
comment
Это было бы правильно.   -  person ShelbyZ    schedule 07.06.2016


Ответы (4)


(Я правда отвечаю Стиву Пескке?: O)

В моем случае выполнение GET на ресурсе user
GET https://webdir0e.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user?originalDomain=contoso.onmicrosoft.com

возвращает следующие

 <resource rel="user" href="https://webpoolam30e08.infra.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user" xmlns="http://schemas.microsoft.com/rtc/2012/03/ucwa">  
   <link rel="applications" href="https://webpoolam30e08.infra.lync.com/ucwa/oauth/v1/applications" revision="2" />
   <link rel="xframe" href="https://webpoolam30e08.infra.lync.com/Autodiscover/XFrame/XFrame.html" />
 </resource>

Таким образом, он содержит URI для ресурса applications, по которому нужно выполнить POST для создания вашего приложения. У меня лицензия O365 E5

person Massimo Prota    schedule 01.06.2016
comment
Привет, спасибо, Массимо, это действительно я. :-) Я ценю, что вы публикуете то, что у вас есть, но я все еще временно застреваю, потому что я не получаю те же данные, что и вы. Я все еще ковыряюсь в этом, так что, наверное, посмотрим, что будет. - person Steve Peschka; 07.06.2016

Я постараюсь ответить как можно короче - у меня это работает. 1-я проблема - когда вы не получаете в результате «приложения», вместо этого вы должны иметь значение «перенаправить». Продолжайте следить за этим и выполняйте GET против него (используя процесс получения токенов доступа и добавления заголовка auth), и в конечном итоге вы должны получить URL-адрес приложения. Вторая проблема - после того, как вы получите URL-адрес приложения, вам нужно получить еще один токен доступа и использовать имя хоста URL-адреса приложения в качестве идентификатора ресурса. Затем вы можете опубликовать и создать свое приложение. Очень надеюсь, что это кому-то поможет. :-)

person Steve Peschka    schedule 10.06.2016

Правильный. Когда результаты вызова пользовательского ресурса не включают приложения, он будет включать значение перенаправления. Вот пример:

Звоните сюда:

https://webdir0b.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user

Может вернуть следующее:

{"_links":{"self":{"href":"https://webdir0b.online.lync.com/Autodiscover/AutodiscoverService.svc/root/user"},"xframe":{"href":"https://webdir2a.online.lync.com/Autodiscover/AutodiscoverService.svc/root/xframe"},"redirect":{"href":"https://webdir2a.online.lync.com/Autodiscover/AutodiscoverService.svc/root"}}}

Что включает в себя это перенаправление

"redirect":{"href":"https://webdir2a.online.lync.com/Autodiscover/AutodiscoverService.svc/root"}}}

Чтобы продолжить, вам нужно будет выполнить вызов аутентификации Azure AD, передав ТОЛЬКО значение протокола: // имя_сервера в качестве ресурса. Это означает сокращение следующего:

https://webdir2a.online.lync.com/Autodiscover/AutodiscoverService.svc/root

Чтобы быть просто таким:

https://webdir2a.online.lync.com/

Теперь, когда у вас есть действующий токен для webdir2a.online.lync.com, вам нужно добавить «/ oauth / user» к URL-адресу перенаправления. Вы заметите, что первоначальный вызов включал это в URL-адрес, а URL-адрес перенаправления - нет.

Вызов обновленного URL-адреса переадресации

https://webdir2a.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user

И вы должны получить то, что вам нужно:

{"_links":{"self":{"href":"https://webpooldm12a04.infra.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user"},"applications":{"href":"https://webpooldm12a04.infra.lync.com/ucwa/oauth/v1/applications","revision":"2"},"xframe":{"href":"https://webpooldm12a04.infra.lync.com/Autodiscover/XFrame/XFrame.html"}}}

Какой ресурс приложений

"applications":{"href":"https://webpooldm12a04.infra.lync.com/ucwa/oauth/v1/applications","revision":"2"}

Для заинтересованных я создал консольное приложение на основе .NET, которое демонстрирует, как войдите в Skype для бизнеса Online через UCWA API - и при этом обрабатывает процесс автоматического обнаружения, перенаправления, создание приложений, среди прочего.

person Tam Huynh    schedule 29.06.2016

Я пытаюсь использовать REST API в Skype для бизнеса Online, следуя инструкциям здесь: https://msdn.microsoft.com/EN-US/library/office/mt590891(v=office.16).aspx.

Я делаю первый вызов службы обнаружения, а затем возвращаю URL-адрес обнаружения пользователю; для меня это выглядит так: https://webdir0b.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user

Затем я звоню в Azure и успешно получаю обратно токен доступа для https://webdir0b.online.lync.com. На следующем этапе все ломается - я снова делаю запрос на URL-адрес обнаружения для пользователя и включаю токен доступа. Я получаю 500 - внутренняя ошибка сервера. Проблема с ресурсом, который вы ищете, и он не может быть отображен.

person lalluram x    schedule 10.11.2017
comment
Это не ответ на вопрос. Подумайте о том, чтобы опубликовать новый вопрос, если ответы здесь к вам не подходят. - person Rob Hogan; 10.11.2017