Как интегрировать внешние учетные записи в настройках коннектора

Я работаю над интеграцией существующей онлайн-службы в команды. Хотя аутентификация работает с использованием клиентского javascript SDK, мне было интересно, есть ли способ более элегантно интегрировать конфигурацию учетной записи в команды.

Например, соединители формируют GitHub, а другие отображают подключенную внешнюю учетную запись в разделе «Мои учетные записи» в диалоговом окне конфигурации соединителя. При просмотре страницы мне также показалось, что они используют более интегрированный опыт настройки.

Есть ли способ использовать эту функцию и есть ли по ней хорошая документация или это возможно только для «партнеров»?

Спасибо за ваше время, Gelx

ИЗМЕНИТЬ:

Теперь я предполагаю, что такого рода интеграция недоступна для третьих лиц, так как по ней нет документации. Однако у меня есть некоторые проблемы с настройкой коннектора. Я выполнил шаги, описанные в документы, но конфигурация не сохраняется.

Я пытаюсь объяснить проблему более подробно здесь: GitHub gist

Я попытался настроить новый коннектор на панели инструментов и обязательно включил нужный домен в список допустимых доменов. Теперь я получаю эту ошибку:

{
  "errorType":"HttpAntiForgeryException",
  "errorMessage":"An unexpected error occurred. Please try again.",
  "errorMessageFromProvider":null,
  "providerName":"",
  "host":"VI1P190MB0446",
  "requestId":"d07c70de-f942-4e16-9d69-fbb9b3469f96",
  "time":"\/Date(1550150816383)\/",
  "launchUrl":null
}

РЕДАКТИРОВАТЬ 2:

Мой текущий вывод ошибки:

Received error from connectors {  
   "seq":1550476872815,
   "timestamp":1550481952912,
   "flightSettings":{  
      "Name":"ConnectorFrontEndSettings",
      "AriaSDKToken":"d127f72a3abd41c9b9dd94faca947689-d58285e6-3a68-4cab-a458-37b9d9761d35-7033",
      "SPAEnabled":true,
      "ClassificationFilterEnabled":true,
      "ClientRoutingEnabled":true,
      "EnableYammerGroupOption":true,
      "EnableFadeMessage":false,
      "EnableDomainBasedOwaConnectorList":false,
      "EnableDomainBasedTeamsConnectorList":false,
      "DevPortalSPAEnabled":true,
      "ShowHomeNavigationButtonOnConfigurationPage":false
   },
   "status":500,
   "clientType":"SkypeSpaces",
   "connectorType":"284913c1-6326-4c87-b687-bd7ef58dc163",
   "name":"handleMessageError",
   "nonPIIInfo":"{\"exception\":{}}"
}

На моей странице конфигурации создается следующая конфигурация:

{
  configName: "Notifications for collection \"Mars Expedition\"",
  contentUrl: "https://b5e5904f.ngrok.io/msteams/connector-landing",
  entityId: 101,
  removeUrl: "https://b5e5904f.ngrok.io/"
}

person Gelx    schedule 14.02.2019    source источник
comment
Вы просматриваете коннекторы? встроенная конфигурация опыт? Не могли бы вы предоставить скриншот того, что вы ищете?   -  person Wajeed-MSFT    schedule 14.02.2019
comment
Да, это то, над чем я работаю. Однако мне кажется, что другие соединители имеют более интегрированный опыт настройки (например, отображение подключенных учетных записей). Этот пост касается той же проблемы: stackoverflow.com/questions/45905064/   -  person Gelx    schedule 14.02.2019
comment
Доступна ли такая интеграция для сторонних приложений?   -  person Gelx    schedule 14.02.2019
comment
@Wajeed-MSFT Если предположить, что вам нужно реализовать конфигурацию, как описано в вашей ссылке, у меня возникли некоторые проблемы с ее работой. Я добавил некоторые детали к моему вопросу. Я думаю, проблема в том, что коннектор не обновляет свои действительные домены.   -  person Gelx    schedule 14.02.2019
comment
Вот пример кода для коннектора. Не могли бы вы поделиться своим идентификатором соединителя и configUrl?   -  person Wajeed-MSFT    schedule 14.02.2019
comment
Я посмотрел на образцы, да. Обязательно ли вызывать getSettings() после сохранения настроек и перед вызовом saveEvent.notifySuccess()? Мне нужно получить webhookUrl перед сохранением настроек, так как entityId будет создан при регистрации веб-перехватчика в нашей службе. Я заметил, что URL-адрес уже указан в getSettings() перед сохранением конфигурации. Это мой идентификатор коннектора: fc17fd7e-877d-4e97-b2f4-1af37262aace Мой configUrl находится здесь (хотя и очень медленный, так как не упакован для разработки): c878f667.ngrok.io/msteams/tab-landing   -  person Gelx    schedule 14.02.2019
comment
Вы можете продолжить и использовать URL-адрес, чтобы получить идентификатор объекта из вашей службы. Однако этот URL-адрес веб-перехватчика будет работать только после вызова setSettings(). Срок действия вашего URL-адреса ngrok истек.   -  person Wajeed-MSFT    schedule 14.02.2019
comment
Пожалуйста, поделитесь обновленным URL-адресом ngrok, если вы все еще сталкиваетесь с проблемой.   -  person Wajeed-MSFT    schedule 18.02.2019
comment
@ Wajeed-MSFT Да, я все еще сталкиваюсь с проблемами, хотя и не совсем такими. Во время моего первоначального поста я создал Connector из AppStudio в Teams, используя учетную запись, отличную от O365. Если я правильно понимаю, это может быть проблемой. Текущая настройка: регистрация приложения (c83e1005-3259-4f65-9de6-f687e233ecd1), созданная с учетной записью outlook.com. Соединитель (284913c1-6326-4c87-b687-bd7ef58dc163) теперь создается с использованием учетной записи с подпиской o365, а URL-адрес конфигурации — b5e5904f.ngrok.io/msteams/connector-landing Спасибо за помощь   -  person Gelx    schedule 18.02.2019
comment
Время загрузки ужасное, если честно. Это связано с отсутствием упаковки во время разработки.   -  person Gelx    schedule 18.02.2019
comment
Я не мог войти, используя свою учетную запись, чтобы проверить это. Любые альтернативы?   -  person Wajeed-MSFT    schedule 18.02.2019
comment
@Gelx- Я мог видеть, что он показывает b5e5904f.ngrok.io как часть вашего действительного домена. Протестируйте один раз и поделитесь информацией о запросе/ответе, если снова произойдет сбой.   -  person Wajeed-MSFT    schedule 18.02.2019
comment
@Wajeed-MSFT Как вам не удалось войти в систему? Я только что попробовал еще раз и все еще получаю ту же ошибку. Я добавлю это к OP. Мой вывод отладки говорит мне, что конфигурация сохраняется правильно, я также добавлю сгенерированный объект настроек в OP.   -  person Gelx    schedule 18.02.2019
comment
Что действительно сбивает меня с толку, так это то, что он работал спорадически. После того, как мне пришлось изменить URL-адрес туннеля, я не смог заставить его снова работать, несмотря на то, что больше ничего не менял.   -  person Gelx    schedule 18.02.2019
comment
@ Wajeed-MSFT Я не совсем уверен. Иногда это работает, иногда (особенно после изменения URL-адреса туннеля) - нет. Я ничего не меняю, кроме URL. Можете ли вы подтвердить, может быть, для полного обновления конфигурации соединителя требуется некоторое время?   -  person Gelx    schedule 20.02.2019
comment
@Wajeed-MSFT В данный момент у меня проблема с новой промежуточной настройкой. У меня это работало вчера, и я изменил только URL-адреса в конфигурациях. Мой текущий идентификатор соединителя — 284913c1-6326-4c87-b687-bd7ef58dc163, а URL-адрес конфигурации — staging.zenkit.com/msteams/. Не могли бы вы взглянуть на это?   -  person Gelx    schedule 20.02.2019
comment
@Gelx- я не смог войти в клиент Zenkit. Этот коннектор только для участников Zenkit?   -  person Wajeed-MSFT    schedule 21.02.2019
comment
@Wajeed-MSFT Вы можете войти в систему с помощью Zenkit или любого из поддерживаемых поставщиков oAuth, включая Azure AD. Хотя сейчас работает...   -  person Gelx    schedule 22.02.2019
comment
@Gelx- Если вы больше не сталкиваетесь с этой проблемой, можем ли мы считать ее решенной?   -  person Wajeed-MSFT    schedule 26.02.2019
comment
@Wajeed-MSFT Да, давайте так считать. Тем не менее, конфигурация/регистрация коннекторов кажутся глючными, и это не то, чего я ожидал от крупной, солидной компании, продающей бизнес-продукты.   -  person Gelx    schedule 27.02.2019