【问题标题】:Retrieving temporary code from Add to Slack button从“添加到 Slack”按钮中检索临时代码
【发布时间】:2016-06-20 11:18:51
【问题描述】:

我在 Slack oauth 进程中途停滞不前,需要一些帮助。我在我的网站上添加了 Add to Slack 按钮,根据文档的下一步是检索临时代码:

如果用户授权您的应用,Slack 将使用代码 GET 参数中的临时代码重定向回您指定的 redirect_uri

调用 oauth.access 需要此代码,它将返回我需要的令牌。 Add to Slack 按钮按预期工作,并将我发送到包含代码的 URL,但我不知道如何使用 Python 3.5 以编程方式检索它。我一直在尝试使用 urllib 库 (https://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPRedirectHandler) 以及 requests 库。

我的问题的根源是我需要从未知 URL 检索代码。这是我正在阅读的文档的链接:https://api.slack.com/docs/oauth

非常感谢任何帮助或指导!

【问题讨论】:

    标签: python python-3.x oauth slack-api slack


    【解决方案1】:

    来自Slack Documentation

    第 2 步 - 令牌发行
    如果用户授权您的应用,Slack 将重定向回您指定的 redirect_uri,并在 code GET 参数中使用临时代码

    在 OAuth 同意屏幕中授权您的应用后,Slack 会将您重定向到您在第 1 步中传递给它的 redirect_uri 或您在应用配置页面中设置的那个。

    然后,您需要在服务器端读取 code GET 参数以完成 OAuth 流程。

    这里有一个要点,它展示了如何使用 Django 进行基本的 Slack OAuth:https://gist.github.com/xoneco/43cd18d5b991b8f5e288

    Line 27 之后展示了如何实现 redirect_uri 端点并完成 OAuth 流程。

    【讨论】:

    • 感谢您的回复。在你贴的代码sn-p中,你知道传递给oauthcallback的request参数的出处吗?我不确定如何找到正确的 URL 来读取其 GET 参数,即使我可以通过浏览器清楚地看到它。
    • request 参数从 Django 传递给函数。它包括GET 字典,这就是我可以检索code 参数值的原因。所有 GET 请求参数都包含在此字典中 (Link for more info) 您目前使用什么框架来处理所有这些?
    • 目前我们没有框架——只有普通的 Python 代码和一个通过 Amazon EC2 托管的网站。我需要一个框架来让我的代码在线吗?如果是这样,你推荐 Django 吗?最终产品将是一个同时为多个 Slack 团队提供服务的机器人。
    • 嗯,从技术上讲,您不需要框架,但我强烈建议拥有一个。例如,如果没有 Django 之类的框架,我不知道如何从传入的 HTTP 请求中检索 GET 参数。我绝对推荐 Django。它可以轻松地同时为许多松弛的团队服务。事实上,我正在使用Simple Poll ;)
    • 我可以将其拆分为一个单独的问题,但也许您可以将我指向资源或指南。我现在有一个通过 EC2 运行的 Django 项目,但我似乎无法弄清楚我的机器人的代码实际上应该放在哪里。 Models.py 似乎是一种可能性,但大多数教程都指出这应该仅用于数据模型。 TL;DR:我的代码应该在哪里,以便 Amazon/Django 实际运行它?感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    相关资源
    最近更新 更多