使用userID的Bluemix推送通知

时间:2016-07-08 00:35:56

标签: push-notification ibm-cloud ibm-mobile-services

我正在使用最新的Bluemix Push Notification服务。我正在使用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显示我可以随意提供一些令牌,userIddeviceId

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

如何获取"TestDeviceId",如何获取"token"?我没有看到任何API来获取该信息。

2 个答案:

答案 0 :(得分:1)

注意:您应该只使用Client SDK进行注册,因为它会在后台处理所有这些内容 - 自动为每个设备分配一个唯一的ID。除非你知道自己在做什么,否则你不应该探索这个。尝试手动设置deviceID并不是一个真正的理由。

为Push Notifications服务注册设备时,请在POST请求的正文中设置这些值。成功调用后,它将在响应中返回这些值。我稍后会在帖子中做一个演示。

register

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

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

Swagger Documentation is here.

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

例如:

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

registering

成功注册: successful response

如果我向推送通知服务询问有关我注册设备的信息("deviceId": "arandomdeviceid"),这就是我所得到的:

querying

Android BMS核心客户端SDK使用设备中的唯一UUID设置此deviceId,并使用MD5对其进行哈希处理。

You can look in here more more information about that.

答案 1 :(得分:0)

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