使用 pubnub 设置推送通知
Posted
技术标签:
【中文标题】使用 pubnub 设置推送通知【英文标题】:Setting up push notifications with pubnub 【发布时间】:2016-09-21 12:09:59 【问题描述】:我正在尝试在 react-native 项目上使用 PubNub 设置推送通知。但是调用 push.addChannels() 方法会给我错误 403 并带有“PNAccessDeniedCategory”。
我已尝试关闭访问管理器,但仍然得到相同的结果。不确定我是否传递了正确的参数。
我已经用苹果设置了推送通知并将 cert.pem 文件上传到 PubNub。
pubnub.push.addChannels(
channels: ['ch.staff'],
device: 'ECID-OF-DEVICE-HERE',
pushGateway: 'apns' // apns, gcm, mpns
, function(status)
if (status.error)
console.log("operation failed w/ error:", status);
else
console.log("operation done!")
);
我可以毫无问题地发送和接收标准消息,只是这个不起作用。
我正在关注这里的文档:
https://www.pubnub.com/docs/javascript/mobile-gateway-sdk-v4#Provisioning_devices_with_channel_names_per_lang_Examples
我的主要问题是。
我是否需要授予访问权限才能使用此方法?我该怎么做? 设备字段是否应该是 ECID?
【问题讨论】:
【参考方案1】:PubNub 移动推送 + 访问管理器
Access Manager 拒绝访问,因为客户端设备的 auth-key 没有 read
权限(或者根本没有 auth-key)。
要么禁用 Access Manager,直到您准备好通过服务器为您的客户端实施授权密钥授予权限,或者为客户端的授权密钥授予 read
权限,以访问它需要注册推送的通道(以及可选择订阅)。
有关详细信息,请参阅 PubNub JavaScript SDK 文档访问管理器教程中的 PubNub Nub operations/permissions mapping。
【讨论】:
【参考方案2】:授予权限如下所示:
pubnub.grant(
channels: ['ch.staff'],
authKeys: ['clientAuthKey'],
read: true, // false to disallow
write: true, // false to disallow
,
function (status)
// handle state setting response
console.log('Status', status)
);
【讨论】:
以上是关于使用 pubnub 设置推送通知的主要内容,如果未能解决你的问题,请参考以下文章
PubNub GCM通知无法在Android 5.0及更高版本上运行