Oracle Help Center | Oracle Push Cloud Service (Standalone) title

Sending to Individual Users

It is possible to send unique messages to individual users based off data on your backend. This can be accomplished in two primary ways:

  1. Collecting Device Identifiers (UUID) + API Keys and associating those values with user records on your server, or
  2. Using the User Identifier parameter with hashed user information to send directly to a user's device(s).

Method 1: Collecting UUIDs + API Keys Per User:

The advantage of this approach is that you can target individual devices of a user and track more information about your user's accounts on your system. Each Push IO UUID relates to a specific install of your application on one device.

Some users of your app may want to receive notifications only on one device or otherwise have different preferences relating to notifications on different devices. If your servers are already tracking information about users, this approach gives you control over exactly which devices receive notifications.

[1.1] You can use these methods to look up the Push IO UUID and API Key within your app code:

iOS

Objective-C methods:

Swift methods:

Android

Windows

[1.2] Collect these values and transmit them to your backend service. Then, you can send to specific recipient(s) via the Push IO API:

iOS:

curl "https://api.pushio.com/api/v1/notify_devices/APP_ID/SENDER_SECRET" -d 'payload={"message":"Test Direct Message"}&recipient_ids={"api_key_1":["device_uuid1","device_uuid2", ...],"api_key_2":["device_uuidN",…]}

curl "https://api.pushio.com/api/v1/notify_devices/APP_ID/SENDER_SECRET" -d 'payload={"message":"Test Direct Message"}&recipient_ids={"eg6DmFel5A_aTGU":["12345678-1234-1234-1234-123456781234"]}'

Android:

curl "https://api.pushio.com/api/v1/notify_devices/APP_ID/SENDER_SECRET" -d 'payload={"message":"Test Direct Message"}&recipient_ids={"api_key_1":["device_uuid1","device_uuid2", ...],"api_key_2":["device_uuidN",…]}

curl "https://api.pushio.com/api/v1/notify_devices/APP_ID/SENDER_SECRET" -d 'payload={"message":"Test Direct Message"}&recipient_ids={"eg6DmFel5A_gTGU":["12345678-1234-1234-1234-123456781234"]}'

Windows:

curl "https://api.pushio.com/api/v1/notify_devices/APP_ID/SENDER_SECRET" -d 'payload={"message":"Test Direct Message"}&recipient_ids={"api_key_1":["device_uuid1","device_uuid2", ...],"api_key_2":["device_uuidN",…]}

curl "https://api.pushio.com/api/v1/notify_devices/APP_ID/SENDER_SECRET" -d 'payload={"message":"Test Direct Message"}&recipient_ids={"eg6DmFel5A_wTGU":["12345678-1234-1234-1234-123456781234"]}'

The recipient_ids parameter is a JSON string consisting of a hash of one or more API Keys and lists of Device Identifiers. Furthermore, platform-specific API Keys can be found in the Set Up section of the Web Dashboard by clicking on each platform:

"Web Dashboard Platform API Key screen"


Method 2: Using User Identifiers

The User Identifier parameter allows developers to connect their users’ devices to a backend system by assigning each device to a specific User ID value. One or more devices can be associated to a User Identifier value. Once done, a developer can send messages to those devices using only the User Identifier.

With this method, the developer doesn’t have to collect Push IO UUIDs or Device Tokens on their backend to effectively send to their users. Their current backend implementation should be enough to send 1:1 messages. Likewise, developers can send a single message that’s received on all of a user’s devices, which is harder to accomplish with Method 1.

There are various ways a User Identifier can be tied to a device. The most common is through a login system:

[2.1] User logs into their account in-app:

     A. Username: JohnDoe

     B. Password: ABC123

[2.2] If login is successful, retrieve user information in the form of a string (a hashed value, if using Personally Identifiable Information) and register the user with methods available for iOS or Android identified below:

     A. Successful Login > johndoe@gmail.com > SHA-256 hashed e-mail value: 06a240d11cc201676da976f7b49341181fd180da37cbe40a77432c0a366c80c3

iOS - Objective-C: [[PushIOManager sharedInstance] registerUserID:@"06a240d11cc201676da976f7b49341181fd180da37cbe40a77432c0a366c80c3"];

iOS - Swift: PushIOManager.sharedInstance().registerUserID("06a240d11cc201676da976f7b49341181fd180da37cbe40a77432c0a366c80c3")

Android: pushIOManager.registerUserId("06a240d11cc201676da976f7b49341181fd180da37cbe40a77432c0a366c80c3");

Windows: pushIOManager.RegisterUserID("06a240d11cc201676da976f7b49341181fd180da37cbe40a77432c0a366c80c3");

[2.3] Then, once a device has been registered, use your backend to send specific 1:1 messages to registered users with the $user_identifier parameter:

curl "https://api.pushio.com/api/v1/notify_app/[APP_ID]/[SENDER_SECRET]" -d 'payload={"message":"Hello John, your application has been processed."}&tag_query=$user_identifier = "06a240d11cc201676da976f7b49341181fd180da37cbe40a77432c0a366c80c3"'

iOS User Identifier Methods

Objective-C:

Swift:

Android User Identifier Methods

Windows User Identifier Methods