我有一个要运行的完全基于脚本的python Slack App,但它需要一个User(不是bot)令牌。我可以很好地使用旧式令牌,但我想通过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浏览器将打开并要求用户进行身份验证。如果是这样,他们将转到显示“身份验证过程已完成”的页面。但是,在终端上它显示Authentication has failed: Invalid response: 302
,并且没有任何内容存储到凭据文件。
无论哪种情况,它在#### BREAKS ####
之后都不会命中我在做什么错,或者更好的是,我该怎么做对呢?
答案 0 :(得分:0)
申请这些权限很容易:
从应用管理页面 (https://api.slack.com/apps) 加载应用设置。
在导航菜单中,选择 OAuth 和权限功能。
向下滚动到范围部分,然后从下拉菜单中选择频道:阅读和频道:历史。
点击保存更改。
滚动回此页面顶部并查找显示“将应用安装到工作区”的按钮(如果您之前已完成此操作,则为“重新安装应用”)。点击它。
您现在会看到一个权限请求屏幕,用于将您的应用安装到其原始工作区。