发布
社区首页 >问答首页 >我用python编写了bot类型,它可以在本地工作,但不能在服务器上工作。有什么问题吗?

我用python编写了bot类型,它可以在本地工作,但不能在服务器上工作。有什么问题吗?
EN

Stack Overflow用户
提问于 2019-04-25 10:06:54
回答 1查看 165关注 0票数 0

我已经用python完成了机器人的输入,

它可以在本地工作,但不能在服务器上工作。

有什么问题吗?

我写了正确的代码

它可以在Python Emulator上运行。

但不是在服务器上。

代码语言:javascript
代码运行次数:0
复制
async def create_reply_activity_typing(request_activity: Activity, text: str, attachment: Attachment = None) -> Activity:
activity = Activity(
    type=ActivityTypes.typing,
    channel_id=request_activity.channel_id,
    conversation=request_activity.conversation,
    recipient=request_activity.from_property,
    from_property=request_activity.recipient,
    text=None,
    service_url=request_activity.service_url)
return activity

下面是实际发送活动的代码。

代码语言:javascript
代码运行次数:0
复制
async def request_handler(context: TurnContext) -> web.Response:
if context.activity.type == 'message':
  prompt_message = await create_reply_activity_typing(context.activity, None)
  time.sleep(5)
  await context.send_activity(prompt_message)
  return await handle_message(context)
EN

回答 1

Stack Overflow用户

发布于 2019-04-26 23:48:51

有两个版本的网络聊天你需要知道-网络聊天和机器人聊天。注意,机器人聊天是被贬低的。

关于键入事件,如果Bot Chat正在显示键入事件,则它不会等待显示下一个活动。但是,Web聊天在呈现下一个活动之前会暂停。目前,iFrame呈现机器人聊天,而仿真器使用网络聊天,这就是为什么键入事件在仿真器而不是iFrame中工作的原因。尽管iFrame目前使用机器人聊天,但在下一个版本中,将在未来几天内更新iFrame以呈现网络聊天。

您可以等待更新,也可以在发送键入活动后向代码添加超时。

代码语言:javascript
代码运行次数:0
复制
prompt_message = await create_reply_activity_typing(context.activity, None)
await context.send_activity(prompt_message)

# Note the timeout needs to be after the activity is sent
time.sleep(5) 

return await handle_message(context)

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55840837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档