华为github push 权限服务服务端返回没有权限是怎么回事 求大神解答

后使用快捷导航没有帐号?
平板/笔记本
云服务专区
& & & & 应用开发
今日: 0 | 昨日: 4 | 帖子: 933 |版主: , , , ,
开发者联盟活动
效率、质量,华为开发者服务工具产品解决方华为开发者联盟开启专属于新品应用的“启蒙荣耀7智灵显开放实力
携手悦动圈开启运动
花粉客户端
Make it Possible
Make your device special
华为云服务
Huawei cloud services
音乐播放器
Huawei Music
Huawei Vmall
关注华为开发者联盟
联系我们:
|关注花粉俱乐部:
Copyright (C)
华为软件技术有限公司 版权所有 保留一切权利后使用快捷导航没有帐号?
平板/笔记本
云服务专区
Push SDK-服务端常见问题
&花粉达人&
来自:浏览器
本帖最后由 叶大墨迹 于
15:49 编辑
1.官方供下载的android版本的包中,服务器端的例子是java版本的,有没有其他编程语言的实例?答:没有提供其他语言版本的server demo,cp服务器端也可以用其他语言(如php)实现,需要自己实现Http请求。参考:开放平台鉴权调用规范
2.AccessToken的过期时间是多长?答:目前AccessToken的过期时间为7天, AccessToken的有效期通过返回的expires_in来传达,AccessToken的有效时间可能会在未来有调整。AccessToken在有效期内尽量复用,业务要根据这个有效时间提前去申请新AccessToken即可。如果业务频繁申请AccessToken,可能会被流控。业务在API调用获知AccessToken已超时的情况下(NSP_STATUS=6,详细错误列表),可以触发AccessToken的申请流程。& && && && && &
3.AccessToken是否可以频繁的申请?答:AccessToken申请频繁会加大华为服务器的负荷,可能会被华为流控。(并没有给出申请AccessToken的频率范围,像这种情况,是不会被流控的:开发者有很多台服务器,每台在推送消息时,都需要获取一个AT,每天申请1~2次。其实这种情况的最好解决办法是:将其中一台服务器作为中枢服务器,负责申请、缓存、分发AccessToken)建议检测AccessToken是否过期,过期了则申请。
4.发送自定义动作的自呈现消息时,如何指定intent字段的值?答:Intent intent = new Intent();intent.setClass(MainActivity.this, PaActivityA.class);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.putExtra(&name&, &zhangsan&);intent.putExtra(&age&, 18);String intentUri = intent.toUri(Intent.URI_INTENT_SCHEME);
intent值使用上述生成的intentUri的值,需要实现在客户端写个demo生成。
5.怎样发送离线缓存的消息?答:cacheMode = 1表示发送消息可离线缓存。当deviceToken+msgType的值一样时,仅缓存最新一条消息,msgType的取值范围为1~100,表示可缓存1~100条消息,客户端上线后,缓存的消息会立即推送给客户端。另外msgType = -1时,离线消息将全部缓存,没有上限,适用于通知栏消息不需要覆盖的情况。
6.CP对华为开发的Push接口提出的需求性问题:(1)获取失效Token数据的接口;(2)获取消息情况统计数据接口;(3)获取用户情况统计数据接口;(4)接口定义统一化:接口参数,返回内容格式的定义,应该统一风格;(5)解决batch_send每次调用限制1000个deviceToken问题;答:上述的这些功能,华为已确定在Push后续版本将会实现,但版本计划待定。
7.服务器端为何调用接口时报鉴权失败?答:1、 首先确保应用的Appid和AppSecret没有填写错误2、 接着确保测试环境网络可以访问到、,可在浏览器输入,看下是否能正常访问3、 服务器SDK 每次获取的AccessToken都有一定的过期时间,请确保AccessToken未过期4、 其他错误请结合:资料中心/开放平台调用说明/错误与异常机制()、资料中心/推送平台/接口文档()。
width:100%">
&渐入佳境&
来自:荣耀畅玩4X CHE-TL00H
虽然没看懂&&但是还是支持楼主
width:100%">
&新学乍练&
来自:浏览器
本帖最后由 wonderfulll 于
14:52 编辑
因为得自己调用服务端的接口实现,比如我要实现安卓的消息推送的话。
推送的地址是多少? /xxx , 没看到文档中写具体的地址?
之前获取的access_token,每次发送消息的时候,都作为post的body参数传递进去吗?
假设我往 安卓推送一个单条消息
post , 地址不知道。
body 里面的内容
{&notification_title&:&hello&,&notification_content &:&hello&,&doings&:1,&&“deviceToken”: &xxxxx&, “message”: &hello&, "priority": 1, "cacheMode ": 1,}
```文档中都主要是对服务器端的JAVA SDK的参数解释说明,没有给出原始的参数和解释说明
width:100%">
&新学乍练&
来自:浏览器
很多东西没有说明白,我觉得华为推送根本没有理解oauth2.0协议,每次授权获取access_token都需要在华为开发平台登录,如果我把账号密码都分发给了各个应用的管理者(一个账号下有多个应用,每个应用分别交给各自团队运营),那么我还需要做什么server后台?他们直接在华为登录,还可以修改其他应用,这样鉴权有什么用呢?
width:100%">
&新学乍练&
来自:浏览器
$ok = @openssl_verify($content, base64_decode($sign), $openssl_public_key, OPENSSL_ALGO_SHA256);
OPENSSL_ALGO_SHA256是php5.4.8版本才有的,低版本的要这样写
$ok = @openssl_verify($content, base64_decode($sign), $openssl_public_key, &SHA256&);
width:100%">
&已臻大成&
来自:H30-T10
width:100%">
&新学乍练&
来自:浏览器
用Demo中的single_send和batch_send都显示发送成功,但在应答里没有对应request_id值,APP端都没有收到消息:
打印信息如下:
access token :CFg2qgIJ872KMOUACkqcVctuWA/vxmXulAibHn/s1KJ6oSoPbP1G+Sm/4yrWVM91XCAp24OknIKe7ZV+Ve+x+A==,expires time[access token 过期时间]:604800
群发接口消息响应: resultcode:0,message:success
查询查询消息发送结果接口:{&result&:[],&request_id&:&&}
在网页上指定IMEI号是可以发送的,选所有人时,app也接收不到信息,到底是什么原因,请指教。
width:100%">
&新学乍练&
来自:浏览器
access token :CFhjbuPJntYoLU/1u+IjFPEZDltoUYzudk32tcWS0LdqGn4epMwoGt6il+iWXbj175R5mUcTsP50mfcq2PiLOQ==,expires time[access token 过期时间]:604800
单发接口消息响应:20203,message:No permission to send message to these tmIDs.
这是什么原因导致的呢????
width:100%">
&花粉达人&
来自:浏览器
用Demo中的single_send和batch_send都显示发送成功,但在应答里没有对应request_id值,APP端都没有收到消息 ...
您好,为了更好地解决您的问题,请问:
1.确认发送的是single_send或者batch_send消息
2.确认查询的是single_send或者batch_send消息
3.查询的是什么时候发送的消息?
width:100%">
&花粉达人&
来自:浏览器
access token :CFhjbuPJntYoLU/1u+IjFPEZDltoUYzudk32tcWS0LdqGn4epMwoGt6il+iWXbj175R5mUcTsP50mfcq2PiLOQ ...
您好,这个是客户端的包名和服务端代码中的appid,app secret不是一套的导致的。
width:100%">
相亲角人文随拍青岛之旅河北白石山细看世界鸣沙山随手拍大观公园之夏
花粉客户端
Make it Possible
Make your device special
华为云服务
Huawei cloud services
音乐播放器
Huawei Music
Huawei Vmall
没有最新动态
关注花粉俱乐部
联系我们:
|关注花粉俱乐部:
Copyright (C)
华为软件技术有限公司 版权所有 保留一切权利查看:5147|回复:27
三层交换机配置如下。现在的情况是所有的电脑都能ping通服务器,但是无法互相ping通。想达到的目的是每一台电脑都能互相ping通。
(593.11 KB)
[LCchengdongxiaoxue]dis cu
!Software Version V200R003C00SPC300
sysname LCchengdongxiaoxue
dns resolve
dns server 114.114.114.114
dns server 10.1.9.7
dns server 114.114.115.115
router id 0.0.0.8
vlan batch 200 30
undo nap slave enable
dhcp enable
description To_LCEDU
description To_1ceng
description To_2ceng
description To_3ceng& && && && && && && &
description To_4ceng
description To_Computer class room
authentication-scheme default
authorization-scheme default
accounting-scheme default
domain default
domain default_admin
local-user qxy password cipher [email=%@%@&Xh]%@%@&Xh&VDyfSC-3)1~u3S[B2f2@%@%[/email]@
local-user qxy privilege level 3
local-user qxy service-type telnet
local-user admin password cipher [email=%@%@N:I=AuH5{&wT:GMC5b3X3Uw}%@%]%@%@N:I=AuH5{&wT:GMC5b3X3Uw}%@%[/email]@
local-user admin service-type http
interface Vlanif1
interface Vlanif200
description To_LCEDU
ip address 10.192.0.18 255.255.255.0
interface Vlanif1010& && && && && && && &
description To_1ceng
ip address 10.194.112.254 255.255.255.0
dhcp select interface
dhcp server lease day 30 hour 0 minute 0
interface Vlanif1020
description To_2ceng
ip address 10.194.113.254 255.255.255.0
dhcp select interface
dhcp server lease day 30 hour 0 minute 0
interface Vlanif1030
description To_3ceng
ip address 10.194.114.254 255.255.255.0
dhcp select interface
dhcp server lease day 30 hour 0 minute 0
interface Vlanif1040
description To_4ceng
ip address 10.194.115.254 255.255.255.0
interface Vlanif1050
description To_Computer class room
ip address 10.194.116.254 255.255.255.0&&
dhcp select interface
dhcp server lease day 30 hour 0 minute 0
interface MEth0/0/1
ip address 10.194.111.254 255.255.255.0
interface GigabitEthernet0/0/1
port link-type access
port default vlan 1010
interface GigabitEthernet0/0/2
port link-type access
port default vlan 1010
interface GigabitEthernet0/0/3
port link-type trunk
port trunk allow-pass vlan 2 to
interface GigabitEthernet0/0/4
port link-type access
port default vlan 1020
interface GigabitEthernet0/0/5
port link-type trunk& && && && && && && &
port trunk allow-pass vlan 2 to
interface GigabitEthernet0/0/6
port link-type access
port default vlan 1030
interface GigabitEthernet0/0/7
port link-type access
port default vlan 1040
interface GigabitEthernet0/0/8
port link-type access
port default vlan 1040
interface GigabitEthernet0/0/9
port link-type access
port default vlan 1050
interface GigabitEthernet0/0/10
port link-type access
port default vlan 1050
interface GigabitEthernet0/0/11
port link-type access& && && && && && &&&
port default vlan 1020
interface GigabitEthernet0/0/12
port link-type access
port default vlan 1030
interface GigabitEthernet0/0/13
port link-type access
port default vlan 1040
interface GigabitEthernet0/0/14
port link-type access
port default vlan 1040
interface GigabitEthernet0/0/15
port link-type access
port default vlan 1040
interface GigabitEthernet0/0/16
description To_LCEDU
port link-type access
port default vlan 1040
interface GigabitEthernet0/0/17& && && &&&
port link-type access
port default vlan 1040
interface GigabitEthernet0/0/18
port link-type access
port default vlan 200
interface GigabitEthernet0/0/19
port link-type access
port default vlan 1040
interface GigabitEthernet0/0/20
port link-type access
port default vlan 1040
interface GigabitEthernet0/0/21
interface GigabitEthernet0/0/22
interface GigabitEthernet0/0/23
port link-type access
interface GigabitEthernet0/0/24
port media type fiber& && && && && && &&&
&&undo negotiation auto
combo-port fiber
description To_LCEDU
port link-type access
port default vlan 200
interface NULL0
ip route-static 0.0.0.0 0.0.0.0 10.192.0.254
snmp-agent
snmp-agent local-engineid 8038BC0CEB80
snmp-agent sys-info version v2c v3
snmp-agent target-host trap address udp-domain 10.1.1.100 params securityname cipher [email=%@%@u+YQ:!$5/PC*Q#!oXK@Uz[^g%@%]%@%@u+YQ:!$5/PC*Q#!oXK@Uz[^g%@%[/email]@ v2c
snmp-agent trap enable
user-interface con 0
user-interface vty 0
authentication-mode password
user privilege level 3
set authentication password cipher [email=%@%@hPnE]%@%@hPnE\'5svOY1`DvR|y;]$y-&)#/e1Hbl]X7S^MXS.42S%-&,y%@%[/email]@
user-interface vty 1
authentication-mode aaa
user privilege level 3& && && && && && &
user-interface vty 2 4
user-interface vty 16 20
[LCchengdongxiaoxue]dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
& && && &Destinations : 15& && & Routes : 15& && &
Destination/Mask& & Proto& &Pre&&Cost& && &Flags NextHop& && && &Interface
& && &&&0.0.0.0/0& &Static&&60& &0& && && & RD& &10.192.0.254& & Vlanif200
& &&&10.192.0.0/24&&Direct&&0& & 0& && && &&&D& &10.192.0.18& &&&Vlanif200
& & 10.192.0.18/32&&Direct&&0& & 0& && && &&&D& &127.0.0.1& && & Vlanif200
& &10.194.112.0/24&&Direct&&0& & 0& && && &&&D& &10.194.112.254&&Vlanif1010
10.194.112.254/32&&Direct&&0& & 0& && && &&&D& &127.0.0.1& && & Vlanif1010
& &10.194.113.0/24&&Direct&&0& & 0& && && &&&D& &10.194.113.254&&Vlanif1020
10.194.113.254/32&&Direct&&0& & 0& && && &&&D& &127.0.0.1& && & Vlanif1020
& &10.194.114.0/24&&Direct&&0& & 0& && && &&&D& &10.194.114.254&&Vlanif1030
10.194.114.254/32&&Direct&&0& & 0& && && &&&D& &127.0.0.1& && & Vlanif1030
& &10.194.115.0/24&&Direct&&0& & 0& && && &&&D& &10.194.115.254&&Vlanif1040
10.194.115.254/32&&Direct&&0& & 0& && && &&&D& &127.0.0.1& && & Vlanif1040
& &10.194.116.0/24&&Direct&&0& & 0& && && &&&D& &10.194.116.254&&Vlanif1050
10.194.116.254/32&&Direct&&0& & 0& && && &&&D& &127.0.0.1& && & Vlanif1050
& && &127.0.0.0/8& &Direct&&0& & 0& && && &&&D& &127.0.0.1& && & InLoopBack0
& && &127.0.0.1/32&&Direct&&0& & 0& && && &&&D& &127.0.0.1& && & InLoopBack0
[LCchengdongxiaoxue]di vlan
The total number of vlans is : 7
--------------------------------------------------------------------------------
U: Up;& && && &D: D& && && &TG: T& && && &UT: U
MP: Vlan-& && && && && &ST: Vlan-
#: ProtocolTransparent-& & *: Management-
--------------------------------------------------------------------------------
VID&&Type& & Ports& && && && && && && && && && && && && && && && && && && &
--------------------------------------------------------------------------------
1& & common&&UT:GE0/0/3(U)& && &GE0/0/5(U)& && &GE0/0/21(D)& &&&GE0/0/22(D)& &&&
& && && && && & GE0/0/23(D)& && && && && && && && && && && && && && && && && &&&
200&&common&&UT:GE0/0/18(D)& &&&GE0/0/24(U)& && && && && && && && && && && && &
& && && && & TG:GE0/0/3(U)& && &GE0/0/5(U)& && && && && && && && && && && && &&&
1010 common&&UT:GE0/0/1(U)& && &GE0/0/2(D)& && && && && && && && && && && && &&&
& && && && & TG:GE0/0/3(U)& && &GE0/0/5(U)& && && && && && && && && && && && &&&
1020 common&&UT:GE0/0/4(D)& && &GE0/0/11(D)& && && && && && && && && && && && &
& && && && & TG:GE0/0/3(U)& && &GE0/0/5(U)& && && && && && && && && && && && &&&
1030 common&&UT:GE0/0/6(U)& && &GE0/0/12(D)& && && && && && && && && && && && &
& && && && & TG:GE0/0/3(U)& && &GE0/0/5(U)& && && && && && && && && && && && &&&
1040 common&&UT:GE0/0/7(D)& && &GE0/0/8(U)& && &GE0/0/13(D)& &&&GE0/0/14(D)& &&&
& && && && && & GE0/0/15(D)& &&&GE0/0/16(D)& &&&GE0/0/17(D)& &&&GE0/0/19(D)& &&&
& && && && && & GE0/0/20(U)& && && && && && && && && && && && && && && && && &&&
& && && && & TG:GE0/0/3(U)& && &GE0/0/5(U)& && && && && && && && && && && && &&&
1050 common&&UT:GE0/0/9(D)& && &GE0/0/10(U)& && && && && && && && && && && && &
& && && && & TG:GE0/0/3(U)& && &GE0/0/5(U)& && && && && && && && && && && && &&&
VID&&Status&&Property& && &MAC-LRN Statistics Description& && &
--------------------------------------------------------------------------------
1& & enable&&default& && & enable&&disable& & VLAN 0001& && && && && && && && &
200&&enable&&default& && & enable&&disable& & To_LCEDU& && && && && && && && &&&
1010 enable&&default& && & enable&&disable& & To_1ceng& && && && && && && && &&&
1020 enable&&default& && & enable&&disable& & To_2ceng& && && && && && && && &&&
1030 enable&&default& && & enable&&disable& & To_3ceng& && && && && && && && &&&
1040 enable&&default& && & enable&&disable& & To_4ceng& && && && && && && && &&&
1050 enable&&default& && & enable&&disable& & To_Computer class room
二层交换机是这么设置的:
sysname Huawei
vlan batch 1020
cluster enable
ntdp enable
ndp enable
drop illegal-mac alarm
diffserv domain default
drop-profile default
authentication-scheme default
authorization-scheme default
accounting-scheme default
domain default
domain default_admin
local-user admin password simple admin
local-user admin service-type http
interface Vlanif1
interface MEth0/0/1
interface Ethernet0/0/1
port link-type access
port default vlan 1020
interface Ethernet0/0/2
port link-type access
port default vlan 1020
interface Ethernet0/0/3
port link-type access
port default vlan 1020
interface Ethernet0/0/4
port link-type access
port default vlan 1020
interface Ethernet0/0/5
port link-type access
port default vlan 1020
interface Ethernet0/0/6
port link-type access
port default vlan 1020
interface Ethernet0/0/7
port link-type access
port default vlan 1020
interface Ethernet0/0/8
port link-type access
port default vlan 1020
interface Ethernet0/0/9
port link-type access
port default vlan 1020
interface Ethernet0/0/10
port link-type access
port default vlan 1020
interface Ethernet0/0/11
port link-type access
port default vlan 1020
interface Ethernet0/0/12
port link-type access
port default vlan 1020
interface Ethernet0/0/13
port link-type access
port default vlan 1020
interface Ethernet0/0/14
port link-type access
port default vlan 1020
interface Ethernet0/0/15
port link-type access
port default vlan 1020
interface Ethernet0/0/16
port link-type access
port default vlan 1020
interface Ethernet0/0/17
port link-type access
port default vlan 1020
interface Ethernet0/0/18
port link-type access
port default vlan 1020
interface Ethernet0/0/19
port link-type access
port default vlan 1020
interface Ethernet0/0/20
port link-type access
port default vlan 1020
interface Ethernet0/0/21
port link-type access
port default vlan 1020
interface Ethernet0/0/22
port link-type access
port default vlan 1020
interface GigabitEthernet0/0/1
port link-type trunk
interface GigabitEthernet0/0/2
interface NULL0
user-interface con 0
user-interface vty 0 4
port-group 1
group-member Ethernet0/0/1
group-member Ethernet0/0/2
group-member Ethernet0/0/3
group-member Ethernet0/0/4
group-member Ethernet0/0/5
group-member Ethernet0/0/6
group-member Ethernet0/0/7
group-member Ethernet0/0/8
group-member Ethernet0/0/9
group-member Ethernet0/0/10
group-member Ethernet0/0/11
group-member Ethernet0/0/12
group-member Ethernet0/0/13
group-member Ethernet0/0/14
group-member Ethernet0/0/15
group-member Ethernet0/0/16
group-member Ethernet0/0/17
group-member Ethernet0/0/18
group-member Ethernet0/0/19
group-member Ethernet0/0/20
group-member Ethernet0/0/21
group-member Ethernet0/0/22
二层交换机g 0/0/1 少了 port trunk allow vlan all
引用:原帖由 onqueing 于
08:54 发表
二层交换机g 0/0/1 少了 port trunk allow vlan all 三层的配置是复制的真实交换机上的,二层忘了保存下来了所以配置是我在模拟器上写的。真实二层上已经设置了所有VLAN通过了。
这个论坛里有召唤功能么?
引用:原帖由 qxyokok 于
11:41 发表
三层的配置是复制的真实交换机上的,二层忘了保存下来了所以配置是我在模拟器上写的。真实二层上已经设置了所有VLAN通过了。 为什么在ENSP上不能设置ALLOW-PASS呢?
(19.01 KB)
提示: 作者被禁止或删除 内容自动屏蔽
引用:原帖由 wang 于
12:33 发表
你的计算机除了服务器,是不是全开了防火墙呢,就一个三层没有ping不能的道理。 没有防火墙
提示: 作者被禁止或删除 内容自动屏蔽
初级工程师
引用:原帖由 qxyokok 于
12:10 发表
为什么在ENSP上不能设置ALLOW-PASS呢? port trunk all-pass vlan all
引用:原帖由 wang 于
13:30 发表
我指的是计算机系统的防火墙,还有安全软件,找两台电脑,把这些全退了,做个测试 我知道,全关了,刚买回来的新电脑,除了自带WIN7,什么都没装,空机器。系统防火墙也都关了。同样的配置我写到华为模拟器里仍然PING不通。所以才让大家看看是哪里配置的有问题
引用:原帖由 轶如既往 于
16:55 发表
port trunk all-pass vlan all 华为上没有这命令吧?
(19.25 KB)
提示: 作者被禁止或删除 内容自动屏蔽
高级工程师
接入交换机in g 0/0/1
port li tr
port tr al vlan all
初级工程师
引用:原帖由 qxyokok 于
18:05 发表
华为上没有这命令吧? 那就是你gigabtehernet0/0/1 沒有修改模式 port link type trunk
没有你说的这个问题,eNSP用了好几年了没有你说的这个现象。
看你的配置(特别是接口)和图上标注的不大一致。
1、将所有三层交换机与二层交换机之间的互联接口透传所有vlan ,命令
port trunk allow-pass all
& &解决你端口vlan 遗漏透传问题。
2、分段测试法排查,组网中不管是哪个楼层user,还是服务器,网关都是在三层交换机上。
1)在逐个楼层user ping网关,确保都能通。
2)服务器和网关是否ping通。
3)到网关都能通的话,互通自然OK , 查找的只是三层交换机的直连(板间)路由。
还有不了解的可以私聊。
引用:原帖由 zzh_john 于
10:02 发表
没有你说的这个问题,eNSP用了好几年了没有你说的这个现象。
看你的配置(特别是接口)和图上标注的不大一致。
1、将所有三层交换机与二层交换机之间的互联接口透传所有vlan ,命令
port trunk allow-pass all
&&... 道理懂啊,神奇的地方在于三层交换机上确实不通。就连直接连在交换机上的调试机和服务器互相PING都不通,但是两台电脑都能PING通网关。
引用:原帖由 lilituzhi 于
23:10 发表
接入交换机in g 0/0/1
port li tr
port tr al vlan all 已经设置了,依旧PING不通
引用:原帖由 轶如既往 于
08:10 发表
那就是你gigabtehernet0/0/1 沒有修改模式 port link type trunk 已经改了TRUNK了,但是不能打这条命令。我上面发的有截图标签:至少1个,最多5个
自从了解到推送可以提升用户留存率等诸多优势之后,越来越多的开发者开始在他们的服务中加入推送的功能。由于每天有大量新加入的开发者询问在他们的服务端中集成个推服务api的问题,特此写一篇初级使用文档,尽可能帮助大家少走弯路,一次成功。
首先你需要在个推开放着平台上注册你的应用,以及获得以下几个必要的值APPID |APPKEY | MASTERSECRET,本文假设你已经完成上述步骤以及完成客户端SDK的集成。
个推服务端api的原理非常简单,组装一个对象,塞进去需要的值,然后编码一下通过http请求发送到个推的推送服务器上,后面的复杂的推送流程就全权交给个推服务器了。
当然尽管原理非常简单,个推服务端api还是做了一些封装,最大限度节省用户工作量,比如组装对象设置特定的数据结构并编码,以及一些额外参数以完成版本的向后兼容等动作。
个推服务端sdk有多种语言支持,JAVA / Python / C# / PHP / GoLang等等,本文以JAVA版本为例介绍使用方法。
首先需要引入服务端sdk,也就是下面几个jar包,下载地址在个推官网上有
看名字很好理解这些jar包的作用,对于前三个commons开头的,codec是用来编码的,httpclient是用来构造http请求的,logging处理日志的;带sdk的三个jar自然是个推封装的组装请求的逻辑,以及提供对用户开放的使用接口;最后两个是用到的数据结构json和protobuf。
单推——推送指定客户端推送
IPushResult pushMessageToSingle(SingleMessage message, Target target)
业务场景:一般适用于指定某个特定用户的推送,比如你要告诉某个用户他租的域名再不续费就要到期啦,或者有个好友@你啦,这种和独立用户紧密相关的个人消息。
群推——批量指定客户端推送
IPushResult pushMessageToList(String contentId, List targetList)
业务场景:一般适用于为某些用户推送消息的场景,比如你提取了一批今天生日的用户列表,给他们发送生日祝福等。
群推——指定应用名称全客户端推送
IPushResult pushMessageToApp(AppMessage message)
业务场景:一般适用为自己应用的所有用户推送同一条消息,比如今年2.14情人节,本店全场5折起之类的消息。
当然以上提到的业务场景只是暂时想到的,你完全可以套用到自己的业务场景里,组合使用各个接口,完成更多元的功能。
各个接口使用方式大同小异,如果理解了原理应该很容易融会贯通。我将结合代码,以单推——toSingle接口来讲解使用方法。
首先定义一些常量,我们应用的appId,appkey等值
private static String appId = "aK6jeksP5C7CsjSSEqLAA3";
private static String appKey = "tpDVam96sY8pxhwBupJ462";
private static String masterSecret = "TBokfpttQJ6aHIhBE9y867";
private static String cid = "ce018bbfd0d6fb448bfcb23";
private static String url = "";
新建一个IGtPush实例,传入调用接口网址,appkey和masterSecret
IGtPush push = new IGtPush(url, appKey, masterSecret);
新建一个消息类型,单推一个用户的话,使用SingleMessage
除了SingleMessage外还有ListMessage和AppMessage分别对应三个推送接口
SingleMessage message = new SingleMessage();
新建一个推送模版,已透传模板为例,透传顾名思义到达客户端后不做任何操作,由app选择处理
其他原生模板类型种类很多,支持各种客户端展现效果,包括弹框下载、打开链接等等。模板里也可以设置响铃震动等效果。
TransmissionTemplate template = new TransmissionTemplate();
template.setAppId(appId);
template.setAppkey(appKey);
template.setTransmissionContent("测试用的透传文本");
template.setTransmissionType(1);
模板设置好后塞进message里,同时可以配置这条message是否支持离线,以及过期时间等,单位毫秒
若设置离线,个推推送系统会为当前不在线的用户缓存离线消息,个推现在支持为每个用户缓存多条离线消息,离线时间最多三天,三天后会删除该条离线消息
message.setData(template);
message.setOffline(true);
message.setOfflineExpireTime(1800 * 1000);
新建一个推送目标,填入appid和clientId
单推情况下只能设置一个推送目标,toList群推时,可以设置多个目标,目前建议一批设置50个左右。
Target target = new Target();
target.setAppId(appId);
target.setClientId(cid);
调用IGtPush实例的toSingle接口,参数就是上面我们配置的message和target
IPushResult result = push.pushMessageToSingle(message, target);
String response = result.getResponse().toString();
System.out.println("返回值:" + response);
至此,一个简单的推送就完成了。无论成功失败,服务端都会有返回结果。根据返回结果可以判断是哪里出错,然后可以有针对的排查问题。常见的错误返回有以下几个:
TokenMD5NoUsers
你填写的cid找不到,看看是不是填错了
AppIdNoUsers
该AppID未绑定用户,去开放平台看看是不是忘记绑定用户了
sign_error
鉴权错误,检查一下你填写的appId和appKey是不是有问题
还有其他类型的错误返回结果,就不一一列举了。下篇文章会写一下群推接口的调用,以及一些高级使用方法。请持续保持关注~
1 收藏&&|&&3
你可能感兴趣的文章
4 收藏,2.9k
2 收藏,1.3k
3 收藏,2.6k
我们现在用的腾讯信鸽
真是很详细,谢谢!
真的介绍的很好,赞一个!
我觉得这种东西自己开发太麻烦了,就别自己捣鼓了,找个第三方,方便,GoEasy就挺不错的,我昨天试了一下,代码简洁易懂,几分钟我就洗了一个自己的实时推送功能;官网:
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
我要该,理由是:

我要回帖

更多关于 git push权限控制 的文章

 

随机推荐