Hubot Slack 机器人可以存储会话吗
Can Hubot Slack bot store sessions
我正在尝试实现简单的 slack 机器人。所以我已经配置了 hubot
它将从 slack
获取输入并将其传递到我的 webapp (django app
) 并且它将接受来自 django-app
的任何响应并将回复 slack .
在此过程中,我尝试使用 request.session
将会话存储在 django
中,但这并未反映在 slack
中。如果我在浏览器中访问 django-url
,它能够存储会话并通过会话获得正确的响应。
那么问题出在 slack
还是我的方法上,有没有办法在请求 django-app
时在 hubot 中存储会话??
我不能说出你使用的具体技术(hubot、django),但我一直在使用我的 Slack 应用程序的服务器会话,并且可以就它的工作原理给你一个一般性的答案。请注意,我的 Slack 应用程序是使用 PHP 构建的,但我认为可以安全地假设原则是相同的。
Slack 不支持会话
一般来说,Slack 不支持会话或上下文。相反,一切都是基于请求的。因此,如果您希望会话在请求之间保持功能上下文,您需要在 Slack 应用程序中自行组织。
使用服务器会话处理服务器请求的挑战
一个挑战是大多数服务器会话都设计为与使用浏览器的客户端一起工作。例如PHP 服务器会话将在浏览器中存储一个 cookie,因此服务器知道哪些请求属于同一个会话。这显然不适用于 Slack,因为所有 Slack 请求都来自服务器,并且不涉及浏览器。
通过 Slack 使用服务器会话的方法
但是您可以通过以下两个技巧在 Slack 中使用服务器会话:
手动设置会话ID
会话ID通常由服务器自动选择,但您也可以手动设置。这允许您告诉服务器继续使用先前请求启动的现有会话。
在 Slack 控制中包含会话 ID
用户的功能会话由他使用的 Slack 控件捆绑在一起。 (例如交互式按钮)。可以在这些控件中包含自定义数据(有关详细信息,请参阅 )并允许您在其中包含当前会话 ID。
完全接近
您将当前会话的 ID 包含在您使用应用程序创建的 Slack 控件中(例如交互式按钮)。用户单击按钮后,Slack 将向您的应用发送请求,其中将包含会话 ID。这允许您的应用程序继续已经启动的服务器会话。
我正在尝试实现简单的 slack 机器人。所以我已经配置了 hubot
它将从 slack
获取输入并将其传递到我的 webapp (django app
) 并且它将接受来自 django-app
的任何响应并将回复 slack .
在此过程中,我尝试使用 request.session
将会话存储在 django
中,但这并未反映在 slack
中。如果我在浏览器中访问 django-url
,它能够存储会话并通过会话获得正确的响应。
那么问题出在 slack
还是我的方法上,有没有办法在请求 django-app
时在 hubot 中存储会话??
我不能说出你使用的具体技术(hubot、django),但我一直在使用我的 Slack 应用程序的服务器会话,并且可以就它的工作原理给你一个一般性的答案。请注意,我的 Slack 应用程序是使用 PHP 构建的,但我认为可以安全地假设原则是相同的。
Slack 不支持会话
一般来说,Slack 不支持会话或上下文。相反,一切都是基于请求的。因此,如果您希望会话在请求之间保持功能上下文,您需要在 Slack 应用程序中自行组织。
使用服务器会话处理服务器请求的挑战
一个挑战是大多数服务器会话都设计为与使用浏览器的客户端一起工作。例如PHP 服务器会话将在浏览器中存储一个 cookie,因此服务器知道哪些请求属于同一个会话。这显然不适用于 Slack,因为所有 Slack 请求都来自服务器,并且不涉及浏览器。
通过 Slack 使用服务器会话的方法
但是您可以通过以下两个技巧在 Slack 中使用服务器会话:
手动设置会话ID
会话ID通常由服务器自动选择,但您也可以手动设置。这允许您告诉服务器继续使用先前请求启动的现有会话。
在 Slack 控制中包含会话 ID
用户的功能会话由他使用的 Slack 控件捆绑在一起。 (例如交互式按钮)。可以在这些控件中包含自定义数据(有关详细信息,请参阅
完全接近
您将当前会话的 ID 包含在您使用应用程序创建的 Slack 控件中(例如交互式按钮)。用户单击按钮后,Slack 将向您的应用发送请求,其中将包含会话 ID。这允许您的应用程序继续已经启动的服务器会话。