Push notification 具有用户ID的Bluemix推送通知

Push notification 具有用户ID的Bluemix推送通知,push-notification,ibm-cloud,ibm-mobile-services,Push Notification,Ibm Cloud,Ibm Mobile Services,我正在使用最新的Bluemix推送通知服务。我正在使用MFPPush API注册设备(Android) 以下是我的代码片段: var success = function(message) { console.log("Success: " + message); alert("Reg Device: " + message); }; var failure = function(message) { console.log("Error: " + message

我正在使用最新的Bluemix推送通知服务。我正在使用MFPPush API注册设备(Android)

以下是我的代码片段:

var success = function(message) 
{ 
    console.log("Success: " + message);
    alert("Reg Device: " + message);
};
var failure = function(message) 
{ 
    console.log("Error: " + message); 
    alert("Error: " + message);
};
MFPPush.registerDevice({}, success, failure);
var notification = function(notification)
{
    // notification is a JSON object.
    alert(notification.message);
};
MFPPush.registerNotificationsCallback(notification);
成功消息包含以下信息:

Token:APA91bFtkSr59Zxlr52HU****Uij
UserId: ""
DeviceId: g5c6d98f-0867-3fd1-a353-15bcdef675a2
当我发送通知时,我的设备会收到消息

Swagger REST API显示,我可以任意提供一些令牌、
userId
deviceId

{
  "deviceId": "TestDeviceId",
  "platform": "G",
  "token": "************",
  "userId": "Joe"
}

如何获取
“TestDeviceId”
,以及如何获取
“令牌”
?我没有看到任何API来获取这些信息。

注意:您可能应该使用客户端SDK进行注册,因为它在后台处理所有这些信息——自动为每个设备分配一个唯一的ID。除非您知道自己在做什么,否则您不应该探索这一点。尝试手动设置deviceID没有真正的理由。

为推送通知服务注册设备时,可以在POST请求主体中设置这些值。成功调用时,它将在响应中返回这些值。我将在稍后的文章中对此进行演示

您还可以检索推送通知服务的设备注册列表。

您可以使用该
deviceId
检索有关设备的详细信息,向该设备发送特定推送通知,订阅标签并向这些设备发送推送通知,等等


关于这些值,您可以在注册时在其中放入任何您想要的内容。通常,当您执行注册调用时,Bluemix Mobile Android/iOS客户端SDK会自动设置这些值。但是,您可以使用REST客户端手动执行此操作

例如:

在这里,我正在注册一个设备:

它成功注册:

如果我向推送通知服务询问有关我已注册设备的信息(对于
“deviceId”:“arandomdeviceid”
),我会得到以下信息:

Android BMS核心客户端SDK使用设备中唯一的UUID并使用MD5散列设置此设备ID

@anamica(a)允许用户id参数与MFPPush注册一起传递,如MFPPush.register({“userId”:“AUniqueUserId”},成功,失败)(b)向目标“userId”(数组)添加额外的参数。
此增强已经完成,您可以尝试更新最新的SDK。

我想使用MFPPush.register({},success,false)JS函数来注册设备。我可以在{}中传递我的设备ID、用户ID信息吗。如果是,我需要样本JSON。客户端SDK只是RESTAPI的包装器。它不支持从SDK设置这些参数。但是,您可以从应用程序发出REST请求以实现所需的功能。顺便问一下,您需要此功能的原因是什么?我认为你可能会给自己带来更多麻烦,而不是你需要的麻烦。我认为使用客户端SDK比理解REST API和确保我传递所有信息(如appSecret、应用程序ID等)要容易得多。如果我不能传递这些信息,我不认为拥有客户端SDK有什么意义。我理解,如果有人不需要传递任何信息,可以打一个简单的电话,但它应该确保它涵盖了REST可以完成的所有事情。这就是包装的要点,向最终用户隐藏复杂性。这看起来像一份半生不熟的工作。希望客户端SDK开发人员观看这篇文章并做必要的工作。感谢客户端SDK包含注册、接收推送通知、获取标记、订阅标记等所需的所有代码。您在这里寻找的似乎是从开发人员那里抽象出来的扩展、复杂的行为,深入到核心SDK中。您可以通过使用简单的REST调用来实现这种扩展行为,但我想不出开发人员为什么要手动设置唯一的
deviceId
(这就是为什么它不在客户端SDK规范中的原因)。