在 Django 2.0 中使用 Slack RTM API
Posted
技术标签:
【中文标题】在 Django 2.0 中使用 Slack RTM API【英文标题】:Using Slack RTM API with Django 2.0 【发布时间】:2018-06-09 13:16:17 【问题描述】:我是 Django 框架的初学者,我正在构建一个使用 Slack RTM API 的 Django 应用程序。
我在 python 中编写了一个执行 OAuth 身份验证过程的程序,如下所示:
def initialize():
url="https://slack.com/api/rtm.connect"
payload="token":"xxx"
r=requests.post(url,payload)
res=json.loads(r.text)
url1=res['url']
ws = create_connection(url1)
return ws
我的要求:
我收到的事件流(从我的 slack 应用程序添加到的我的 slack 频道)被处理以过滤掉类型的事件 - 消息,然后将消息与正则表达式模式匹配,然后将匹配的字符串存储在数据库。
作为一个独立的 python 程序,我正在从我的频道接收事件流。
我的问题:
如何将此代码成功集成到 Django,以便我可以 满足我的要求?
我是否将代码放在模板/视图中?是什么 处理此数据流的推荐方法?
【问题讨论】:
【参考方案1】:def initialize():
url = "https://slack.com/api/rtm.connect"
r = requests.get(url, params='token': '<YOUR TOKEN>')
res = r.json()
url1=res['url']
ws = create_connection(url1) #Note: There is no function called create_connnection() so it will raise an error
return ws
如果您阅读 API 网络方法,您会看到:
首选 HTTP 方法: GET
请看这里:Slack rtm.connect method
看看评论,那是正确的代码,看看这段代码和你的区别。
基本上从请求中获取 JSON 不要使用json.loads
,因为这会搜索您的本地计算机而不是请求
使用r.json()
所以它调用你从r
获得的json。
请注意,r.text
将返回原始文本输出,因此当您想要获取 url 时,它不会被识别,r.json
您可以按照所述调用对象 url
希望对您有所帮助。
请您告诉我们更多您想对此做什么?因为模板是一个目录,其中包含您不需要使用的所有 html 文件。
但为什么是views.py
?
【讨论】:
以上是关于在 Django 2.0 中使用 Slack RTM API的主要内容,如果未能解决你的问题,请参考以下文章
如何解决部署SFB时报错End Error Message from rewrite_2.0_rt?