A feishu api package for django
Project description
django_feishu_sdk
使用本三方库可参考以下网址:
https://gitee.com/li-pf/django_feishu_sdk https://github.com/lpfandr/django_feishu_sdk
Required
1.Install or add django-feishu-sdk to your python path.
pip install django-feishu-sdk
2.Add feishu to your setting.
# 飞书配置
FEISHU_V2_SDK_CONFIGS = {
'FEISHU_APP_ID': "xxx", # 企业应用的id
'FEISHU_APP_SECRET': "xxx", # 企业应用的SECRET
'FEISHU_VERIFY_TOKEN': "xxx", # 企业应用的事件加密token
'FEISHU_ENCRYPT_KEY': "xxx", # 企业应用的事件加密key
}
3.If you use events, you'd better make the following settings
ALLOWED_HOSTS = ['*']
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
Usage
⚠ 您应该优先创建一个app,完善相关url路径,startapp xxx
除事件外的数据获取
1.在view.py中调用飞书数据
from django.http import JsonResponse
from django_feishu_sdk import *
def send_text_messages(request):
"""
发送文本消息
"""
fs_client = FeishuClient()
res = fs_client.send_text(text='测试消息', receive_id_type='open_id', receive_id='ou_63f6845d304e7a1a3df99d6fce291d58')
print(res)
return JsonResponse(res)
def get_user_info(request):
"""
按照用户个人信息
"""
fs_client = FeishuClient()
res = fs_client.get_user_info(user_id='77g56381', user_id_type='user_id')
print(res)
return JsonResponse()
2.url.py
from django.urls import path
from .views import *
urlpatterns = [
path('get_user_info/', get_user_info), # 获取用户的信息
path('event_process/', event_process), # 接收事件订阅的消息
]
3.当前页面json显示
事件的数据获取
1.在app中的统计目录新建feishu.py文件,内容如下
from django.http import JsonResponse
from django_feishu_sdk import UrlVerificationEvent, MessageReceiveEvent, FeishuClient, MessageReadEvent
from django_feishu_sdk.apis.event import EventManager
event_manager = EventManager()
# 处理首次事件配置
@event_manager.register("url_verification")
def request_url_verify_handler(req_data: UrlVerificationEvent):
# url verification, just need return challenge
return JsonResponse({"challenge": req_data.event.challenge})
# 消息已读事件
@event_manager.register("im.message.message_read_v1")
def message_read_event_handler(req_data: MessageReadEvent):
print('sender', req_data.event.get('reader'))
print('req_data', req_data.header.event_id)
receive_id = req_data.event.get('reader').get('reader_id').get('open_id')
fs_client = FeishuClient()
res = fs_client.send_text(text='监测到消息已读', receive_id_type='open_id',
receive_id=receive_id)
print(res)
return JsonResponse(res)
2.view.py文件如下
from django_feishu_sdk import *
from .feishu import event_manager
def event_process(request):
"""
与飞书事件挂载
"""
event_handler, event = event_manager.get_handler_with_event(request)
return event_handler(event)
事件扩展
1.在app中的统计目录新建feishu.py文件,内容如下
from django.http import JsonResponse
from django_feishu_sdk import UrlVerificationEvent, MessageReceiveEvent, FeishuClient, MessageReadEvent, EventContent
from django_feishu_sdk.apis.event import EventManager
class MessageReadEvent(EventContent):
"""
事件类型:已读消息
飞书文档地址:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/events/message_read
"""
@staticmethod
def event_type():
return "im.message.message_read_v1"
class MyEventManager(EventManager):
_event_list = [MessageReceiveEvent, UrlVerificationEvent, MessageReadEvent]
event_manager = MyEventManager()
@event_manager.register("im.message.receive_v1")
def message_receive_event_handler(req_data: MessageReceiveEvent):
# sender_id = req_data.event.sender.sender_id
# message = req_data.event.message
fs_client = FeishuClient()
res = fs_client.send_text(text='测试消息', receive_id_type='open_id', receive_id='ou_63f6845d304e7a1a3df99d6fce291d58')
print(res)
return JsonResponse(res)
2.注意事项 feishu.py文件中类继承时,_event_list已经给出了默认的三个,应该保留
# 原始
_event_list = [MessageReceiveEvent, UrlVerificationEvent, MessageReadEvent]
# 重写后
_event_list = [MessageReceiveEvent, UrlVerificationEvent, MessageReadEvent,yournewEvent]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
django_feishu_sdk-0.2.0.tar.gz
(34.2 kB
view details)
File details
Details for the file django_feishu_sdk-0.2.0.tar.gz.
File metadata
- Download URL: django_feishu_sdk-0.2.0.tar.gz
- Upload date:
- Size: 34.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80d1898540fdf6d2ed8134b7307e14211cc222557b60d5b3c45f138ce48c8bf1
|
|
| MD5 |
2c3949f1c45fc42aa2aebc666a867e62
|
|
| BLAKE2b-256 |
827917d542daa35c8712945d6de5dbe874249a1071567ed895a0bcfe048f6615
|