尝试将代码从BF 1.x升级到3.x,并且无法找到转换以下代码的示例
var client = new ConnectorClient();
var getData = await client.Bots.GetUserDataAsync(Constants.botId, userid);
getData.Data = ar.Serialize();
var resp = await client.Bots.SetUserDataAsync(Constants.botId, userid, getData);
return Request.CreateResponse(resp);
对其他方法开放,但是用户从机器人那里获得了一个到网站的链接,它包含链接中的用户ID,然后该网站想要在对话中设置状态。
最大的问题是client.Bots不再存在 - 状态已经转移到它自己的StateClient但是要获得状态客户端,它似乎需要有一个Activity对象
答案 0 :(得分:2)
activity.GetStateClient
只是帮助获取给定频道的正确状态客户端。我们需要这个的原因是大多数频道使用集中存储,而其他频道可能需要特定于频道的频道(例如模拟器)。为了更深入地理解,我建议在ActivityEx.cs
中查看此方法的代码。
构建状态客户端(对于大多数渠道)的直接方式是:
new StateClient(new MicrosoftAppCredentials(microsoftAppId, microsoftAppPassword));
有关参数的说明,请参阅this。