处理https://ejabberd-saas.com/远程数据api调用的通用应用程序
djabberd的Python项目详细描述
处理https://ejabberd-saas.com/远程数据api调用的通用应用程序
贾伯德
对于每个特定的任务,必须实现一个处理函数。
安装
pip install djabberd
快速启动
一。在项目url.py中包含django-ejabberd urlconf,如下所示:
url(r'', include('djabberd.urls'),
# For Django==1.8 url(r'', include('djabberd.urls'), namespace='djabberd')
2.在django设置中设置处理程序:
DJABBERD_API_HANDLERS='your.module.path'
根据Ejabberd SaaS的文档,这些端点是必需的(2016年2月1日):
- 用户管理:
- 身份验证('/auth')
用户存在(“用户”)
- 检索用户花名册('/floster')
- 存储('/archive')
- 获取('/archive')
每个端点必须有一个函数,应该这样实现:
- 用户认证(用户名、密码):
- 如果身份验证有效,则返回true
- 如果身份验证not有效,则返回false
- UsRyI存在(用户名):
- <如果用户存在
返回> cTIT> true - 如果未激活(或未激活),则返回false
- 以json格式返回花名册
- 如果用户不存在 返回
- 如果消息已存储,则返回true
- 如果消息not已存储,则返回包含错误消息的字符串
- 以json格式返回消息历史记录
- 在任何其他情况下返回false
格式
检索用户名册:
{"roster": [ {"username": "CONTACT", "subscription": "both", "nick": "NICK"}, ... ]}
存档存储:
{"username": "USERNAME1", "peer": "USERNAME2", "xml": "MESSAGE_STANZA", "body": "TEXT", "timestamp": "TIMESTAMP", "direction": "DIRECTION"}
存档:
{"archive": [{"username": "USERNAME1", "peer": "USERNAME2", "xml": "MESAGE_STANZA", "body": "TEXT", "timestamp": "TIMESTAMP", "direction": "DIRECTION"}, ...] "count" : MESSAGES_NUMBER }
注意事项
基于Ejabberd SaaS的文档:
- 如果xmpp jid是“userid@xmppdomain”,只需传递“userid”
- 如果用户的xmpp jid是“userid@xmppdomain”,只需传递“xmppdomain”
- 如果从处理程序引发异常,则会将其视为服务器错误
- 如果成功,返回http 200
- 如果身份验证失败,则返回http 401
- 如果不成功,则返回http 401
- 对于服务器错误返回http 500,这是django的默认行为