Skip to content

Commit

Permalink
Merge pull request #90 from rjelierse/restore-conversations-api
Browse files Browse the repository at this point in the history
Converstations API 🚀
  • Loading branch information
marcel corso gonzalez authored May 8, 2019
2 parents 22eeccb + 33954b9 commit 1f7a466
Show file tree
Hide file tree
Showing 31 changed files with 1,936 additions and 24 deletions.
3 changes: 0 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ matrix:
allow_failures:
- php: hhvm
- php: hhvm-nightly
include:
- php: 5.3
dist: precise

before_script:
- if [[ "$TRAVIS_PHP_VERSION" == "hhvm"* ]]; then curl -sSfL -o ~/.phpenv/versions/hhvm/bin/phpunit https://phar.phpunit.de/phpunit-5.7.phar; fi
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
}
],
"require": {
"php": ">=5.3.0",
"php": ">=5.4.0",
"ext-curl": "*",
"symfony/polyfill-php56": "^1.10"
},
Expand Down
26 changes: 26 additions & 0 deletions examples/conversations/create.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?php

// Initiates a conversation by sending a first message. This example uses a
// plain text message, but other types are also available. See the
// conversations-messages-create examples.

require(__DIR__ . '/../../autoload.php');

$messageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.

$content = new \MessageBird\Objects\Conversation\Content();
$content->text = 'Hello world';

$message = new \MessageBird\Objects\Conversation\Message();
$message->channelId = 'CHANNEL_ID';
$message->content = $content;
$message->to = 'RECIPIENT'; // Channel-specific, e.g. MSISDN for SMS.
$message->type = 'text';

try {
$conversation = $messageBird->conversations->create($message);

var_dump($conversation);
} catch (\Exception $e) {
echo sprintf("%s: %s", get_class($e), $e->getMessage());
}
22 changes: 22 additions & 0 deletions examples/conversations/list.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

// Retrieves all conversations for this account. Pagination is supported
// through the optional 'limit' and 'offset' parameters.

require(__DIR__ . '/../../autoload.php');

$messageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.

// Take 10 objects, but skip the first 5.
$optionalParameters = array(
'limit' => '10',
'offset' => '5',
);

try {
$conversations = $messageBird->conversations->getList($optionalParameters);

var_dump($conversations);
} catch (\Exception $e) {
echo sprintf("%s: %s", get_class($e), $e->getMessage());
}
30 changes: 30 additions & 0 deletions examples/conversations/messages-create-location.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?php

// Sends a message to an existing conversation, with a location as its content.

require(__DIR__ . '/../../autoload.php');

$messageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.

$content = new \MessageBird\Objects\Conversation\Content();
$content->location = array(
'latitude' => 52.379112,
'longitude' => 4.900384,
);

$message = new \MessageBird\Objects\Conversation\Message();
$message->channelId = 'CHANNEL_ID';
$message->content = $content;
$message->to = 'RECIPIENT';
$message->type = \MessageBird\Objects\Conversation\Content::TYPE_LOCATION; // 'location'

try {
$conversation = $messageBird->conversationMessages->create(
'CONVERSATION_ID',
$message
);

var_dump($conversation);
} catch (\Exception $e) {
echo sprintf("%s: %s", get_class($e), $e->getMessage());
}
31 changes: 31 additions & 0 deletions examples/conversations/messages-create-media.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?php

// Sends a message to an existing conversation, with media as its content.
// Supported media types are 'audio', 'file', 'image' and 'video.

require(__DIR__ . '/../../autoload.php');

$messageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.

$content = new \MessageBird\Objects\Conversation\Content();
$content->image = array(
'url' => 'https://cdn-gc.messagebird.com/assets/images/logo.png'
);

$message = new \MessageBird\Objects\Conversation\Message();
$message->channelId = 'CHANNEL_ID';
$message->content = $content;
$message->to = 'RECIPIENT_MSISDN';
$message->type = \MessageBird\Objects\Conversation\Content::TYPE_IMAGE; // 'image'

try {
// Using a contactId instead of a conversationId is also supported.
$conversation = $messageBird->conversationMessages->create(
'CONVERSATION_ID',
$message
);

var_dump($conversation);
} catch (\Exception $e) {
echo sprintf("%s: %s", get_class($e), $e->getMessage());
}
29 changes: 29 additions & 0 deletions examples/conversations/messages-create-text.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php

// Sends a plain text message to a contact. If there's an active conversation
// with that contact the message will be added to this conversation, otherwise
// it creates a new conversation.

require(__DIR__ . '/../../autoload.php');

$messageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.

$content = new \MessageBird\Objects\Conversation\Content();
$content->text = 'Hello world';

$message = new \MessageBird\Objects\Conversation\Message();
$message->channelId = 'CHANNEL_ID';
$message->content = $content;
$message->to = 'RECIPIENT';
$message->type = \MessageBird\Objects\Conversation\Content::TYPE_TEXT;

try {
$conversation = $messageBird->conversationMessages->create(
'CONVERSATION_ID',
$message
);

var_dump($conversation);
} catch (\Exception $e) {
echo sprintf("%s: %s", get_class($e), $e->getMessage());
}
16 changes: 16 additions & 0 deletions examples/conversations/messages-list.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

// Retrieves all messages from the conversation. Pagination is supported
// through the optional 'limit' and 'offset' parameters.

require(__DIR__ . '/../../autoload.php');

$messageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.

try {
$messages = $messageBird->conversationMessages->getList('CONVERSATION_ID');

var_dump($messages);
} catch (\Exception $e) {
echo sprintf("%s: %s", get_class($e), $e->getMessage());
}
24 changes: 24 additions & 0 deletions examples/conversations/read.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

// Retrieves a single conversation by its ID.

require(__DIR__ . '/../../autoload.php');

$messageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.

// Setting the optional 'include' parameter to 'content' requests the API to
// include the expanded Contact object in its response. Excluded by default.
$optionalParameters = array(
'include' => 'content',
);

try {
$conversation = $messageBird->conversations->read(
'CONVERSATION_ID',
$optionalParameters
);

var_dump($conversation);
} catch (\Exception $e) {
echo sprintf("%s: %s", get_class($e), $e->getMessage());
}
18 changes: 18 additions & 0 deletions examples/conversations/update.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?php

// Updating the conversation allows moving them between 'active' and 'archived'
// status. This example restores an archived conversation by setting it to active.

require(__DIR__ . '/../../autoload.php');

$messageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.

try {
$conversationId = 'CONVERSATION_ID';
$conversation = $messageBird->conversations->read($conversationId);

$conversation->status = \MessageBird\Objects\Conversation\Conversation::STATUS_ACTIVE;
$messageBird->conversations->update($conversation, $conversationId);
} catch (\Exception $e) {
echo sprintf("%s: %s", get_class($e), $e->getMessage());
}
28 changes: 28 additions & 0 deletions examples/conversations/webhooks-create.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?php

// Webhooks enable real-time notifications of conversation events to be
// delivered to endpoints on your own server. This example creates a webhook
// that is invoked when new conversations and messages are created in the
// specified channel.

require(__DIR__ . '/../../autoload.php');

$messageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.

try {
$webhook = new \MessageBird\Objects\Conversation\Webhook();
$webhook->channelId = 'CHANNEL_ID';
$webhook->url = 'https://example.com/webhook';
$webhook->events = array(
\MessageBird\Objects\Conversation\Webhook::EVENT_CONVERSATION_CREATED,
\MessageBird\Objects\Conversation\Webhook::EVENT_MESSAGE_CREATED,

// Other options:
// \MessageBird\Objects\Conversation\Webhook::EVENT_CONVERSATION_UPDATED,
// \MessageBird\Objects\Conversation\Webhook::EVENT_MESSAGE_UPDATED,
);

$messageBird->conversationWebhooks->create($webhook);
} catch (\Exception $e) {
echo sprintf("%s: %s", get_class($e), $e->getMessage());
}
15 changes: 15 additions & 0 deletions examples/conversations/webhooks-delete.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

// Webhooks enable real-time notifications of conversation events to be
// delivered to endpoints on your own server. This example deletes an existing
// webhook.

require(__DIR__ . '/../../autoload.php');

$messageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.

try {
$messageBird->conversationWebhooks->delete('WEBHOOK_ID');
} catch (\Exception $e) {
echo sprintf("%s: %s", get_class($e), $e->getMessage());
}
16 changes: 16 additions & 0 deletions examples/conversations/webhooks-list.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

// Retrieves all webhooks this key has access to. Pagination is supported
// through the optional 'limit' and 'offset' parameters.

require(__DIR__ . '/../../autoload.php');

$messageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.

try {
$webhooks = $messageBird->conversationWebhooks->getList();

var_dump($webhooks);
} catch (\Exception $e) {
echo sprintf("%s: %s", get_class($e), $e->getMessage());
}
17 changes: 17 additions & 0 deletions examples/conversations/webhooks-read.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

// Webhooks enable real-time notifications of conversation events to be
// delivered to endpoints on your own server. This example retrieves an
// existing webhook.

require(__DIR__ . '/../../autoload.php');

$messageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.

try {
$webhook = $messageBird->conversationWebhooks->read('WEBHOOK_ID');

var_dump($webhook);
} catch (\Exception $e) {
echo sprintf("%s: %s", get_class($e), $e->getMessage());
}
Loading

0 comments on commit 1f7a466

Please sign in to comment.