Как мне получить notifySuccess для отправки кода подтверждения? - PullRequest
1 голос
/ 06 июня 2019

Я следую этому примеру для реализации взаимодействия с Microsoft Graph.Мне удалось проследить и отобразить страницу с моим кодом подтверждения, но SDK Teams, похоже, не хочет автоматически публиковать код на моем боте.

На моей странице успеха oauth есть следующие строки:согласно образцу

<script src="https://unpkg.com/@microsoft/teams-js@1.4.2/dist/MicrosoftTeams.min.js" integrity="sha384-DcoNUuQTjpW5Sw3msonn/2ojgtNvtC5fCGd5U9RUpL3g1hla1LzHz8I9YIYSXe6q" crossorigin="anonymous"></script>

<script type="text/javascript">
    setTimeout(function () {
    document.getElementById("instructionText").style.display = "initial";
            }, 5000);

    microsoftTeams.initialize();
    microsoftTeams.authentication.notifySuccess("{{verificationCode}}");
</script>

Согласно образцу, бот получает сообщение вызова с именем = signin / verifyState, но я не получаю.Хотя страница входа закрывается.

Есть идеи, почему страница не будет автоматически уведомлять моего бота о коде?

1 Ответ

0 голосов
/ 08 июня 2019

Извините, что так долго. Понял.

Итак, проблема в том, что вы ищете действие message, но команды отправляют действие invoke, которое не попадает в onMessage. Вместо этого в вашем BotController используйте что-то вроде:

this.onUnrecognizedActivityType(async (turnContext, next) => {
    console.log(`GOT : ${ JSON.stringify(turnContext.activity, null, 2)}`)
});

Это производит:

GOT : {
  "name": "signin/verifyState",
  "type": "invoke",
  "timestamp": "2019-06-07T22:19:53.810Z",
  "localTimestamp": "2019-06-07T22:19:53.810Z",
  "id": "f:490708197841asdfasdfasdf15",
  "channelId": "msteams",
  "serviceUrl": "https://smba.trafficmanager.net/amer/",
  "from": {
    "id": "29:1AvIMwjQc1iBRcFYBe-0opf4YzVU130fNasdjkhfkldjshfjkahgsdfjklasdkjfasdfcS_7MO9DKFFNL6Ow",
    "name": "asdfasdfasdfasdf",
    "aadObjectId": "asdfasdfasdfasdf"
  },
  "conversation": {
    "conversationType": "personal",
    "tenantId": "asdfasdfasdfasdfasd",
    "id": "asdfasdfasdfasdf"
  },
  "recipient": {
    "id": "asdfasdfasdfasdf",
    "name": "asdfasdfasdfasdf"
  },
  "entities": [
    {
      "locale": "en-US",
      "country": "US",
      "platform": "Windows",
      "type": "clientInfo"
    }
  ],
  "channelData": {
    "tenant": {
      "id": "asdfasdfadsfasdf"
    },
    "source": {
      "name": "message"
    }
  },
  "value": {
    "state": "asdfasdfasdfasdf"
  },
  "locale": "en-US"
}
...