在 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的主要内容,如果未能解决你的问题,请参考以下文章

Django 2.0 的路由如何实现正则表达式

使用电子邮件注册,Django 2.0

Django 2.0 url() 到 path()

如何解决部署SFB时报错End Error Message from rewrite_2.0_rt?

如何在 Django 2.0 中使用波斯语蛞蝓解码 URL?

如何在 django 2.0 中的 url 中有选项