Skip to content

Commit

Permalink
Merge pull request #50 from alexislefebvre/readme-explain-channel-name
Browse files Browse the repository at this point in the history
README: Explain channel name
  • Loading branch information
Alymosul authored Dec 11, 2019
2 parents 1837da6 + 77ce206 commit e4e89b2
Showing 1 changed file with 49 additions and 3 deletions.
52 changes: 49 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,26 +14,72 @@ Server-side library for working with Expo push notifications using PHP

require_once __DIR__.'/vendor/autoload.php';

$interestDetails = ['unique identifier', 'ExponentPushToken[unique]'];
$channelName = 'news';
$recipient= 'ExponentPushToken[unique]';

// You can quickly bootup an expo instance
$expo = \ExponentPhpSDK\Expo::normalSetup();

// Subscribe the recipient to the server
$expo->subscribe($interestDetails[0], $interestDetails[1]);
$expo->subscribe($channelName, $recipient);

// Build the notification data
$notification = ['body' => 'Hello World!'];

// Notify an interest with a notification
$expo->notify($interestDetails[0], $notification);
$expo->notify($channelName, $notification);

Data can be added to notifications by providing it as a JSON object. For example


// Build the notification data
$notification = ['body' => 'Hello World!', 'data'=> json_encode(array('someData' => 'goes here'))];

# Channel name

You can use channels to send a notification to only one user, or to a group of users:

## One recipient

In order to target one recipient (and avoid sending a notification to the wrong recipient), use a channel name specific to each user:

```php
$channelName = 'user_528491';
$recipient = 'ExponentPushToken[unique]';

// …

// Subscribe the recipient to the server
$expo->subscribe($channelName, $recipient);

// …

// Notify an interest with a notification, only one recipient will receive it
$expo->notify($channelName, $notification);
```

## Several recipients

Declare a channel name that will be shared between the recipients:

```php
$channelName = 'group_4815';

$recipient1 = 'ExponentPushToken[unique1]';
$recipient2 = 'ExponentPushToken[unique2]';

// …

// Subscribe the recipients to the server
$expo->subscribe($channelName, $recipient1);
$expo->subscribe($channelName, $recipient2);

// …

// Notify an interest with a notification, the 2 recipients will receive it
$expo->notify($channelName, $notification);
```

# TODO
- Need to create tests

Expand Down

0 comments on commit e4e89b2

Please sign in to comment.