Skip to content

Commit 5fc35b8

Browse files
author
zhengjh
committed
推送API,Notification里Android增加channel_id字段
增加批量单推接口 增加接口送达统计详情(新) /v3/received/detail 增加消息统计详情(VIP 专属接口,新)/v3/messages/detail
1 parent 98fa1cb commit 5fc35b8

File tree

11 files changed

+74
-13
lines changed

11 files changed

+74
-13
lines changed

Diff for: .gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ dist/
44
jpush.egg-info/
55
.idea/
66
examples/conf.py
7+
/tests/conf.py

Diff for: examples/batch_push_example.py

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from conf import app_key, master_secret
2+
import jpush
3+
4+
_jpush = jpush.JPush(app_key, master_secret)
5+
_jpush.set_logging("DEBUG")
6+
7+
push = _jpush.create_push()
8+
single_payload_list = [
9+
{'platform':'all', 'target':'regid1', 'notification':{'alert':'alert content'}},
10+
{'platform':'all', 'target':'regid2', 'notification':{'alert':'alert content'}}
11+
]
12+
response = push.batch_push_by_regid(single_payload_list)
13+
print(response)

Diff for: examples/push_example.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
from . import jpush, app_key, master_secret
1+
from conf import app_key, master_secret
2+
import jpush
23

34
_jpush = jpush.JPush(app_key, master_secret)
45
_jpush.set_logging("DEBUG")
@@ -106,4 +107,4 @@ def validate():
106107
push.audience = jpush.all_
107108
push.notification = jpush.notification(alert="Hello, world!")
108109
push.platform = jpush.all_
109-
push.send_validate()
110+
push.send_validate()

Diff for: examples/report_example.py

+13-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
from . import jpush, app_key, master_secret
1+
from conf import app_key, master_secret
2+
import jpush
23

34
_jpush = jpush.JPush(app_key, master_secret)
45
_jpush.set_logging("DEBUG")
@@ -7,11 +8,20 @@
78
def messages():
89
report.get_messages("3289406737")
910

10-
def receivede():
11+
def messages_detail():
12+
report.get_messages_detail("3289406737")
13+
14+
def received():
1115
report.get_received("3289406737")
1216

17+
def received_detail():
18+
report.get_received_detail("3289406737")
19+
1320
def users():
1421
report.get_users("DAY","2016-04-10","3")
1522

1623
def status():
17-
report.get_status_messages('3289406737', ['xxx'])
24+
report.get_status_message('3289406737', ['xxx'])
25+
26+
messages_detail()
27+
received_detail()

Diff for: jpush/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
schedulepayload,
7676
]
7777

78-
__version__ = '3.3.7'
78+
__version__ = '3.3.8'
7979
VERSION = tuple(map(int, __version__.split('.')))
8080

8181
# Silence urllib3 INFO logging by default

Diff for: jpush/core.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def push(self, payload):
6060
url = common.get_url('push', self.zone) + 'push'
6161
self._request('POST', body, url, 'application/json', version=1)
6262

63-
def set_logging(self, level):
63+
def set_logging(self, level):
6464
level_list= ["CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG", "NOTSET"]
6565
if level in level_list:
6666
if(level == "CRITICAL"):

Diff for: jpush/push/core.py

+22
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,28 @@ def get_cid(self, count, type = None):
8080
response = self._jpush._request('GET', body, url, 'application/json', version=3, params = params)
8181
return PushResponse(response)
8282

83+
def batch_push_by_regid(self, single_payload_list):
84+
cid_response = self.get_cid(len(single_payload_list), 'push')
85+
cidlist = cid_response.payload['cidlist']
86+
batch_payload = {"pushlist":{}}
87+
for index in range(len(single_payload_list)):
88+
batch_payload["pushlist"][cidlist[index]] = single_payload_list[index]
89+
body = json.dumps(batch_payload)
90+
url = common.get_url('push', self.zone) + 'push/batch/regid/single'
91+
response = self._jpush._request('POST', body, url, 'application/json', version=3)
92+
return PushResponse(response)
93+
94+
def batch_push_by_alias(self, single_payload_list):
95+
cid_response = self.get_cid(len(single_payload_list), 'push')
96+
cidlist = cid_response.payload['cidlist']
97+
batch_payload = {"pushlist":{}}
98+
for index in range(len(single_payload_list)):
99+
batch_payload["pushlist"][cidlist[index]] = single_payload_list[index]
100+
body = json.dumps(batch_payload)
101+
url = common.get_url('push', self.zone) + 'push/batch/alias/single'
102+
response = self._jpush._request('POST', body, url, 'application/json', version=3)
103+
return PushResponse(response)
104+
83105

84106
class PushResponse(object):
85107
"""Response to a successful push notification send.

Diff for: jpush/push/payload.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ def ios(alert=None, badge='+1', sound=None, content_available=False,
8484

8585
def android(alert, title=None, builder_id=None, extras=None,
8686
priority=None, category=None, style=None, alert_type=None,
87-
big_text=None, inbox=None, big_pic_path=None, large_icon=None, intent=None):
87+
big_text=None, inbox=None, big_pic_path=None, large_icon=None, intent=None, channel_id=None):
8888
"""Android specific platform override payload.
8989
9090
:keyword alert: String alert text.If you set alert to a empty string,then the payload
@@ -103,6 +103,8 @@ def android(alert, title=None, builder_id=None, extras=None,
103103
payload['title'] = title
104104
if builder_id is not None:
105105
payload['builder_id'] = builder_id
106+
if channel_id is not None:
107+
payload['channel_id'] = channel_id
106108
if priority is not None:
107109
payload['priority'] = priority
108110
if category is not None:

Diff for: jpush/report/core.py

+14-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,14 @@ def get_received(self,msg_ids):
2222
received = self.send("GET", url, params = params)
2323
return received
2424

25-
def get_status_messages(self, msg_id, reg_ids, date=None):
26-
url = common.get_url('report', self.zone) + 'status/messages'
25+
def get_received_detail(self, msg_ids):
26+
url = common.get_url('report', self.zone) + 'received/detail'
27+
params = {'msg_ids': msg_ids}
28+
response = self.send("GET", url, params = params)
29+
return response
30+
31+
def get_status_message(self, msg_id, reg_ids, date=None):
32+
url = common.get_url('report', self.zone) + 'status/message'
2733
if not isinstance(reg_ids, list):
2834
reg_ids = [reg_ids]
2935
body = {
@@ -41,6 +47,12 @@ def get_messages(self, msg_ids):
4147
messages = self.send("GET", url, params = params)
4248
return messages
4349

50+
def get_messages_detail(self, msg_ids):
51+
url = common.get_url('report', self.zone) + 'messages/detail'
52+
params = {'msg_ids': msg_ids}
53+
response = self.send("GET", url, params = params)
54+
return response
55+
4456
def get_users(self, time_unit,start,duration):
4557
url = common.get_url('report', self.zone) + 'users'
4658
params = {

Diff for: tests/conf.py

-3
This file was deleted.

Diff for: tests/conf.py.example

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# please put your app_key and master_secret here
2+
app_key = u'xxxxxx'
3+
master_secret = u'xxxxxx'

0 commit comments

Comments
 (0)