python - 在 Django 2.0 中使用 Slack RTM API

标签 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

我的要求:

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

作为一个独立的 python 程序,我从我的 channel 接收事件流。

我的问题:

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

  2. 我是否将代码放在模板/ View 中?是什么 处理此数据流的推荐方法?

最佳答案

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 呢?

关于python - 在 Django 2.0 中使用 Slack RTM API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50774686/

相关文章:

node.js - 443 apache SSL 端口和 8888 https 监听端口不起作用 - Node.js - socket.io

python - 使用 pyral 0.9.3 将附件添加到 TestCaseResults

python - 通过排除使用 isin 过滤 pyspark 数据帧

python - 更改方法定义

python - Select2 和 django_filters 不查询外键

mysql - Django-MySQL 启用 Row_Format=Compress with syncdb

jquery - 有没有办法用查询字符串填充表单?

javax websocket客户端ssl连接

python : Stairstep DP solution understanding

c# - GDAX/Coinbase API Level3 订单簿 - 跳过消息