使用推送通知时如何获取用户设备令牌

Posted

技术标签:

【中文标题】使用推送通知时如何获取用户设备令牌【英文标题】:how to get the users device token when using push-notification 【发布时间】:2015-09-02 04:54:10 【问题描述】:

我正在构建一个向 iosandroid 手机发送推送通知的应用程序,在搜索时我发现“推送通知”它允许跨平台推送通知我的问题是我们如何为用户设备获取 iosToken 和 androidToken ?如果有人在此之前使用过它,我将不胜感激朝着正确的方向前进。在此先感谢您,您可以在下面找到我的代码。

var PushNotification = require('push-notification');
var DeviceType = PushNotification.DeviceType;
var path = require('path');

// APN: cert.pem, key.pem should be configured
// GCM: configure console to generate gcm.sender
PushNotification.init(
    apn: 
    cert: path.resolve('./keys/cert.pem'),
    key: path.resolve('./keys/key.pem')
,
gcm: 
    apiKey: 'gcm-api-key'

);

var iosToken = 'iphone-device-token';
var androidToken = 'android-device-token';
var message = 'some text to push...';
var badge = null;
var sound = null;
var payload = null;

// send a notification to a single device
PushNotification.pushSingle(DeviceType.IOS, iosToken, message, badge,    sound, payload);
PushNotification.pushSingle(DeviceType.ANDROID, androidToken, message, badge, sound, payload);

【问题讨论】:

设备令牌只能由设备生成。所以你必须制作一个 api 来从设备中获取设备令牌。 尝试跨平台阅读本教程,但如果您深入其中,则所有链接都指向 gsm 和 apns 案例devgirl.org/2012/10/25/… 【参考方案1】:

当设备令牌在用户设备的应用程序中生成时,设备令牌可以被推送并存储到您的推送通知服务器可以访问的数据库中。这可以通过 REST API 完成。

根据您的需要,由用户组成的数据库中的表可能包含用户唯一的 iPhone 和 Android 手机的设备令牌。

因此,当您需要向特定用户广播通知时,您需要在数据库中查找用户的设备令牌并从那里构建通知。

我在最近参与的一个项目中做了类似的事情。我希望它有所帮助。

【讨论】:

如何生成这些令牌? @BecarioSenior 它通常取决于您要为其生成设备令牌的平台。对于 Android 和 iOS,您可以参考这些问题。 ***.com/questions/33560598/…***.com/questions/8798725/…【参考方案2】:

设备令牌由 Google 分配给将注册播放服务的特定设备。

例如,如果您正在注册 GCM,成功注册的设备将获得注册密钥。

此密钥应传递到服务器,以便您可以将消息推送到设备。请注意,我们需要单独的设备令牌。对于大规模广播,我们循环键并推送消息。如果您发现任何其他方式,请在此处发布。

【讨论】:

以上是关于使用推送通知时如何获取用户设备令牌的主要内容,如果未能解决你的问题,请参考以下文章

如何从我的所有用户那里获取设备令牌信息以进行推送通知?

获取推送通知的生产 iOS 设备令牌

如何收集特定令牌以向特定设备发送推送通知

应用启动后如何获取 iOS 推送通知令牌

iOS APN 推送通知 - 设备令牌

Apple 推送通知令牌