私はログインを使って認証されたクライアントを持っています。その要求に応じてそのuserIdとトークンをボットに渡す必要があります。私は、この情報が必要な私のサーバーのWeb APIを打つために使用することができます。ヘッダーに入っている認可を取得しようとしましたが、秘密を保持しています。ヘッダーにIDとトークンを付けることができれば私にとっては役に立ちます。私のクライアントからトークンを私のクライアントからBotボットフレームワークに直接送ることができます
this.botConnection = new BotChat.DirectLine({
secret: 'yNy9g1Mok1g.cwA.fyks.fghsth.rcKOQUIu558-TI',//params['mysecret'],
token: params[this.token], //I think I should pass it here but this does not work.
//domain: params['ngroktunneledurl.com/api/messages'],
webSocket: params['webSocket'] && params['webSocket'] === "true" // defaults to true,
});
はその後。メッセージコントローラ内のトークンを取得しようとしているbotから
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
var keyValuePair = Request.Headers.FirstOrDefault(h => h.Key.Equals("Authorization"));
token = keyValuePair.Value.First().Substring(7);
await Conversation.SendAsync(activity,() => new Dialogs.RootDialog(token));
}
else
{
HandleSystemMessage(activity).ConfigureAwait(false);
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
}
認可は、私たちのボットを特定の秘密をもたらします。
私は、ChanelDataがあらゆるユーザーの応答でボットにデータを送信するのに役立つ方法を見つけられませんでした。それが私の主な問題です。ボットに要求するたびにユーザーを認証する必要があります。私はDirectLineを使用しています。 –