使用Slack RTM API和Django 2.0

时间:2018-06-09 13:16:17

标签: python django websocket slack slack-api

我是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

我的要求:

我收到的事件流(从我的松弛应用程序添加到我的松弛应用程序中)被处理以过滤掉类型的事件 - 消息,然后将消息与正则表达式模式匹配,然后将匹配的字符串存储在数据库中。

作为一个独立的python程序,我收到了来自我频道的事件流。

我的问题:

  1. 如何将此代码成功集成到Django以便我可以 满足我的要求?

  2. 我是否将代码放在模板/视图中?是什么 推荐的方法来处理这个数据流?

1 个答案:

答案 0 :(得分:0)

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

希望获得帮助。

有鉴于此,您能否告诉我们更多您想做什么?因为template是一个目录,其中包含您不需要使用的所有HTML文件。

但是为什么要views.py