使用 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及更高版本上运行

推送通知的最佳解决方案

怎么设置微信推送通知

未使用 Apple 推送通知设置通知徽章计数 - swift - 以编程方式

QuickBlox:推送通知设置

Parse.com - 为单个用户设置推送通知