这里有几个问题,在git上关于bot sdk的v3,其中bot在我的facebook频道上大约一个小时后得到"未经授权"的响应,webchat运行良好。
我在v4 SDK中遇到了这个问题,使用了.net核心2.1、AspNetCore 2.1.6,并使用了一些琐碎的东西,比如echobot c#示例。我不清楚未经授权的是来自微软的机器人框架,还是来自脸书本身。
下面是我的代码和跟踪。。。请注意,故障似乎来自:Microsoft.Bot.Builder.Integration.IAdapterIntegration.
我的代码:用于回复:
public async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken))
{
if (turnContext.Activity.Type == ActivityTypes.Message)
{
_logger.LogInformation("OnTurnAsync got message");
try
{
_logger.LogInformation("create activity");
Activity reply = turnContext.Activity.CreateReply();
_logger.LogInformation("send simple message");
await turnContext.SendActivityAsync("hello world");
...
轨迹:
[Information] CISBaseBot.CISBaseBot: OnTurnAsync got message
[Information] CISBaseBot.CISBaseBot: create activity
[Information] CISBaseBot.CISBaseBot: send simple message
[Information] Microsoft.Bot.Builder.Integration.IAdapterIntegration: Sending activity. ReplyToId: TaqxSedy0NHkuz6v2d1SSDBtz0lj6KSn5cH__9maU0vjkxJiCcGelCs0gM-p7raz4eATFN1XtVpWMb_RYGQIFg
[Trace] CISBaseBot.CISBaseBot: Operation returned an invalid status code 'Unauthorized'
[Debug] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HLIRTMBEP9BP" completed keep alive response.
非常感谢提前提供的任何帮助。。。根据我的阅读,它似乎是一个过期的令牌,但我一直无法找到如何在V4 SDK中刷新令牌。
好的,所以我决定最好在这里查看facebook方面,肯定有几个关于过期页面或用户令牌的Stack问题。为了让机器人再次验证,我不得不这样做:
1( 我重新生成了facebook页面令牌(使用fb开发者门户网站上的Messenger/设置/令牌,而不是我遇到问题的图形API资源管理器(,然后在MS机器人程序中的facebook频道中更新了它2( 在该页面的fb for developers Dashboard上,在webhook/edit订阅下,我将azure上bot页面的"验证令牌"粘贴到验证对话框中并重新提交。
机器人随后开始工作(没有重新启动,只有azure/bot/channel中的一次更新(。这个问题涉及机器人程序上下文之外的访问令牌,但可以肯定的是,它与"验证facebook页面、用户和应用程序"一样。
Facebook页面访问令牌-这些令牌会过期吗?Facebook页面访问令牌-这些令牌会过期吗?