Clickatell HTTP库
项目描述
Bellville, A Clickatell Python Library
A Python Clickatell HTTP library
>>> from clickatell.api import Clickatell
>>> from clickatell import constants as cc
>>> clickatell = Clickatell('username','password','api_id',
... sendmsg_defaults={
... 'callback': cc.YES,
... 'msg_type': cc.SMS_DEFAULT,
... 'deliv_ack': cc.YES,
... 'req_feat': cc.FEAT_ALPHA + \
... cc.FEAT_NUMER + \
... cc.FEAT_DELIVACK
... })
>>> clickatell.sendmsg(recipients=['27123456789'], \
... sender='27123456789', text='hello world')
[ERR: 301, No Credit Left]
>>>
下一步,为您的Clickatell账户获取一些信用。
入门指南
确保您拥有Clickatell账户,他们将为您提供10条免费短信,您可以使用这些短信进行测试。但是,即使未送达的消息也会计入您的信用,如果您打算实际使用这10条短信,请确保您使用库100%正确。使用他们提供的用户名、密码和api_id。
如果您想使用代码,以下内容应该足够
$ python setup.py install
如果您想开发代码,请执行以下操作
$ virtualenv --no-site-packages ve/ $ source ve/bin/activate (ve)$ pip -E ve/ install -r requirements.pip (ve)$ python setup.py develop ...
来自
测试
此项目使用Nose进行测试,master分支应该始终保持稳定
(ve)$ pip install nose (ve)$ nosetests ...
使用Bellville
一些代码示例,说明这个工具是如何工作的。
发送单条短信
>>> from clickatell.api import Clickatell
>>> clickatell = Clickatell('username','password','api_id')
>>> [resp] = clickatell.sendmsg(recipients=['27123456789'],
... sender='27123456789',
... text='hello world')
>>> resp
IDResponse: ce7f181a44a4a5b7e43fe2b9a0b1f0c1
>>> resp.value # Clickatell's apiMsgId value
'ce7f181a44a4a5b7e43fe2b9a0b1f0c1'
>>>
向多个收件人发送短信
>>> [resp1, resp2] = clickatell.sendmsg(recipients=[
... '27123456781',
... '27123456782'],
... sender='27123456789',
... text='hello world')
>>> resp1.value # the apiMsgId
'ce7f181a44a4a5b7e43fe2b9a0b1f0c1'
>>> resp1.extra # the extra values returned for the response
{'To': '27123456781'}
>>> resp2.value
'ce7f181a44a4a5b7e43fe2b9a0b1f0c2'
>>> resp2.extra
{'To': '27123456782'}
>>>
检查短信状态
Clickatell允许您通过轮询其服务器来检查短信状态。然而,他们还允许您使用HTTP回调,他们将状态实时发布到您的服务器。 这要快得多,也更有效。
>>> status = clickatell.querymsg( \
... apimsgid='ce7f181a44a4a5b7e43fe2b9a0b1f0c1')
>>> status.value
'ce7f181a44a4a5b7e43fe2b9a0b1f0c1'
>>> status.extra
{'Status': '002'}
>>>
检查您的Clickatell账户余额
>>> clickatell.getbalance() 0.67000000000000004 >>>
检查MSISDN的覆盖范围
>>> clickatell.check_coverage('27219107700')
ERRResponse: This prefix is not currently supported. Messages sent to this prefix will fail. Please contact support for assistance.
>>> resp = clickatell.check_coverage('2776*******')
>>> resp
OKResponse: This prefix is currently supported. Messages sent to this prefix will be routed. Charge: 1
>>> resp.value
'This prefix is currently supported. Messages sent to this prefix will be routed.'
>>> resp.extra
{'Charge': '1'}
>>>
检查短信费用
>>> resp = clickatell.getmsgcharge( \
apimsgid='ce7f181a44a4a5b7e43fe2b9a0b1f0c1')
>>> resp.value
'ce7f181a44a4a5b7e43fe2b9a0b1f0c1'
>>> resp.extra
{'status': '002', 'charge': '1'}
>>>
发送短信批量
batch.sendmsg()方法的响应与clickatell.sendmsg()的响应相同。
>>> batch = clickatell.batch(sender='27123456789',
... template='Hello #field1# #field2#')
>>> with batch:
... batch.sendmsg(to='27123456781', context={
... 'field1': 'Foo 1',
... 'field2':'Bar 1'
... })
... batch.sendmsg(to='27123456782', context={
... 'field1': 'Foo 2',
... 'field2':'Bar 2'
... })
...
ERRResponse: 301, No Credit Left
ERRResponse: 301, No Credit Left
>>> # shucks
要使with语句工作,您需要Python 2.6或更高版本。如果手动启用,它可以在Python 2.5中工作
>>> from __future__ import with_statement
如果您不想使用上下文管理器,您可以使用batch_id参数手动调用batch.start()和batch.end()。
>>> batch = clickatell.batch(sender='27123456789',
... template='Hello #field1# #field2#')
>>> batch_id = batch.start()
>>> batch.sendmsg(to='...', batch_id=batch_id, context={...})
>>> batch.sendmsg(to='...', batch_id=batch_id, context={...})
>>> batch.sendmsg(to='...', batch_id=batch_id, context={...})
>>> batch.end(batch_id)
向多个收件人发送快捷消息
>>> with clickatell.batch(sender='27123456789', ... template='Hello world!') as batch: ... [apimsgid1, apimsgid2, apimsgid3] = batch.quicksend(recipients=[ ... '27123456781', ... '27123456782', ... '27123456783', ... ]) ... >>> apimsgid1 ERRResponse: 301, No Credit Left To: 27123456781 >>> apimsgid2 ERRResponse: 301, No Credit Left To: 27123456782 >>> apimsgid3 ERRResponse: 301, No Credit Left To: 27123456783 >>>
待办事项
尚未实施的功能包括
队列消息的删除
MMS 推送
WAP 推送服务指示
令牌凭证支付
8位消息
项目详情
下载文件
下载您平台对应的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
python-clickatell-0.1.3.tar.gz (12.6 kB 查看哈希)
构建分布
python_clickatell-0.1.3-py2.6.egg (26.5 kB 查看哈希)
关闭
python-clickatell-0.1.3.tar.gz 的哈希
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | b988661757c7427b5df1be15d8b8955ea1f9b7ea07a736661fab5ef7eb2860d4 |
|
| MD5 | 937e7f0f62a12633d5ea92dce0ba483d |
|
| BLAKE2b-256 | e83c7b0c9fa6652d27682d1c20853d4b5766f5437aa690a7d5c4edcd729ab4a5 |
关闭
python_clickatell-0.1.3-py2.6.egg 的哈希
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 46f7d7ca7baf8af0106cc6b3ab4d7b14f29809bb000b5cc6c63a90d0633e73af |
|
| MD5 | f91d3978deb4f78f4b8b159a4ccbe79d |
|
| BLAKE2b-256 | a6a627e5951c163178464757a0dde335a9c58c8e742d810548d60d4c9136235e |