繁体   English   中英

如何为 Slack 获取用户令牌 API

[英]How to Get User Token for Slack API

我有一个完全基于脚本的 python 我想运行的 Slack 应用程序,但它需要一个用户(不是机器人)令牌。 我可以很好地使用遗留令牌,但我想通过 oauth 获取令牌。不过,我在弄清楚如何执行此操作时遇到了很多麻烦:我已经向应用程序添加了本地重定向并且我已经尝试过这个代码:

def _get_credentials(self):

    credential_dir = os.path.join(PATH, '.credentials')

    if not os.path.exists(credential_dir):
        os.makedirs(credential_dir)

    credential_path = os.path.join(credential_dir,
                                   CREDENTIALS_LOCATION)

    store = oauth2client.file.Storage(credential_path)
    credentials = store.get()

    if not credentials or credentials.invalid:

        clientSecretPath = os.path.join(PATH, CLIENT_SECRET_FILE)
        flow = client.flow_from_clientsecrets(clientSecretPath, SCOPES)
        flow.user_agent = APPLICATION_NAME

        #### START PROBLEM ###

        credentials = tools.run_flow(flow, store)

        #### BREAKS ####

        print('Storing credentials to ' + credential_path)

    return credentials 

我遇到的所有问题都在哈希标签指定的行上。

第一个是,如果凭证文件不存在,它不会创建它,而是会中断。

如果我用我想要的名称创建一个空文件,则 web 浏览器会打开并要求用户进行身份验证。 如果他们这样做,他们将 go 转到一个页面,上面写着“身份验证过程已完成”。 但是,在终端中它显示Authentication has failed: Invalid response: 302并且没有任何内容存储到凭据文件中。

在任何一种情况下,它都不会在 #### BREAKS #### 之后到达该行

我做错了什么,或者更好的是,我该怎么做?

  1. 请求这些权限很容易:

  2. 从应用程序管理页面 ( https://api.slack.com/apps ) 加载应用程序的设置。

  3. 在导航菜单中,选择 OAuth 和权限功能。

  4. 向下滚动到范围部分,然后从下拉菜单中选择频道:阅读和频道:历史。

  5. 单击保存更改。

  6. 滚动回此页面的顶部并查找显示“将应用程序安装到工作区”的按钮(或者,如果您以前这样做过,请重新安装应用程序)。 点击它。

您现在将看到一个权限请求屏幕,用于将您的应用安装到其原始工作区。

我还尝试从脚本(在我的例子中是:slackchannel2pdf)进行 API 调用,并且能够使用我必须为此目的创建的 Slack 应用程序的Install App页面上显示的用户令牌来执行此操作:

自定义Slack App的Install App页面

完全披露:我不知道自己在做什么,我只是尝试使用谷歌搜索并按照随机说明进行操作,直到它起作用为止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM