处理oauth并存储slack令牌

django-slack-oauth的Python项目详细描述




\django slack oauth[![构建状态](https://travis-ci.org/izdi/django-slack-oauth.svg?branch=master)(https://travis ci.org/izdi/django slack oauth)

_secret`在[创建新的松弛应用程序](https://api.slack.com/applications)时可以找到它。



使用pip安装:

```
$pip安装django slack oauth
```

2。在"settings.py"中将"django-slack-oauth"添加到"installed-apps"中:

``python
`installed-apps=(

'django-slack-oauth',

```

3。运行初始迁移:

```
$python manage.py migrate
```

4。将slack oauth基url添加到项目的"url.py"中:

``python
urlpatterns=[

url(r'^slack/',include('django_slack_oauth.url'),

]
```

5。在"settings.py"中指定松弛凭据和OAuth作用域:

``python
slack_client_id=os.environ.get('slack_client_id')
slack_client_secret=os.environ.get('slack_client_secret')
slack_scope='admin,bot'
````
作用域应该是,请阅读有关[slack oauth scopes]的更多信息(https://api.slack.com/docs/oauth scopes)。

被重定向到oauth进程的slack。如果成功,将重定向到显示成功消息的视图。您可以通过在"settings.py"中设置"slack_success_redirect_url"来更改此视图。


OAuth身份验证成功。有些用例可能是:

-为用户注册帐户
-捕获验证后slack返回的api数据(默认行为)
-在验证后向用户的slack团队发送slack消息

它们只是按顺序调用的函数列表。它们必须接受并返回两个参数:"request"和"api_data",分别包含初始请求和返回的api数据。

pipelines定义为"settings.py"中的可调用列表:

``python
slack_pipelines=[
'path.to.function1',
'path.to.f函数2,

]
```


-**示例1:*显示从OAuth请求返回的数据

*settings.py*

```python

松弛管道=[
'我的应用程序管道。调试OAuth请求',
]
``````

*我的应用程序/管道lines.py*

`` python
定义调试请求(请求,api数据):
打印(api数据)
返回请求,api数据
````
-**示例2:*注册用户并发送电子邮件

*设置.py*

``python

slackelines=[
'我的应用程序管道.注册用户',
'我的应用程序管道.发送电子邮件',
]
````

*我的应用程序/管道.py*

``python
``python
从django.contrib.auth.models导入用户

r/>
def register_user(request,api_data):
如果api_data['ok']:
user,created=user.objects.get_or_create(
username=api_data['team_id']+':'+api_data['user_id']


如果user.is_active:
slacker,u=slackuser.objects.get_或_create(slacker=user)
slacker.access_token=api_data.pop('access_token')
slacker.extras=api_data
slacker.save()

如果创建:
request.c创建的用户=用户


return request,api_data



def notify(request,api_data):
if hasatt(request,created_user'):
notify_admins("已创建ID为{}的新用户。".format(request,created_user))
notify_user(request,created_user)

return request,api_dataa
````


n感谢《丹尼尔•范飞门》(https://github.com/dvf)




////////////



/>

````````````````````
```````````
`````````````
a非统组织(oauth/authori权)'
````````````````````````````````COM/A公司pi/oauth.access'
```

此状态存储在会话中,这要求启用[会话中间件](https://docs.djangoproject.com/en/2.1/topics/http/sessions/enabling sessions)(默认情况下启用)。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android Studio:我的短信应用程序不是默认短信应用程序的选项之一   java处理字符串问题   java为什么我的程序打印“null”而不是字符串?   java为什么要创建一个无限循环?   java循环在一段时间后将布尔值更改为false?   java Android Rest Api Post 400错误请求   java调用另一个方法以获取resultset并正确关闭连接?   java我想在2d数组中添加一行   Java:我需要从outputstream中获取字节数组   C语言中Java元注释的等价物#   java如何在从web下载图像时保持原始图像的dpi?   java中基于输入值的spring boot动态值   java从请求中获取主机名   java可以复制Swing代码并在intelliJ中的designer中查看它吗   spring如何使用java配置多个ldap   安卓如何在Java中使用具有多个类似参数的JSON请求/响应循环?   java LIbGDX如何在语言更改时翻译所有文本?