Skip to content

Commit 8ba37eb

Browse files
author
Gediminas Šedbaras
authored
Merge pull request #23 from sotoz/master
ChatAPI functionality
2 parents 5803a7f + 3516285 commit 8ba37eb

25 files changed

+927
-0
lines changed

examples/chatchannels-create.php

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
3+
require_once(__DIR__ . '/../autoload.php');
4+
5+
$MessageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.
6+
7+
$ChatChannel = new \MessageBird\Objects\Chat\Channel();
8+
9+
//Example for telegram channel
10+
11+
$ChatChannel->name = 'Test Channel Telegram';
12+
$ChatChannel->platformId = 'e82d332c5649a5f911e569n69040697';
13+
14+
// Channel details is a hash with name-value pairs indicating which channel details (and their respective data types)
15+
// are required when creating a channel for this platform.
16+
17+
$ChatChannel->channelDetails =
18+
array(
19+
'botName' => 'testBot',
20+
'token' => '1234566778:A34JT44Yr4amk234352et5hvRnHeAEHA'
21+
);
22+
23+
try {
24+
$ChatChannelResult = $MessageBird->chatchannels->create($ChatChannel);
25+
var_dump($ChatChannelResult);
26+
27+
} catch (\MessageBird\Exceptions\AuthenticateException $e) {
28+
// That means that your accessKey is unknown
29+
echo 'wrong login';
30+
31+
} catch (\Exception $e) {
32+
echo $e->getMessage();
33+
}

examples/chatchannels-delete.php

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
require_once(__DIR__ . '/../autoload.php');
4+
5+
$MessageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.
6+
7+
try {
8+
9+
$deleted = $MessageBird->chatchannels->delete('4affac2c577fb22e373921n52675409'); // Set a message id here
10+
var_dump('Deleted: ' . $deleted);
11+
12+
} catch (\MessageBird\Exceptions\AuthenticateException $e) {
13+
// That means that your accessKey is unknown
14+
echo 'wrong login';
15+
16+
} catch (\Exception $e) {
17+
echo $e->getMessage();
18+
}

examples/chatchannels-list.php

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
require_once(__DIR__ . '/../autoload.php');
4+
5+
$MessageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.
6+
7+
try {
8+
$ChatChannelResult = $MessageBird->chatchannels->getList();
9+
var_dump($ChatChannelResult);
10+
11+
} catch (\MessageBird\Exceptions\AuthenticateException $e) {
12+
// That means that your accessKey is unknown
13+
echo 'wrong login';
14+
15+
} catch (\Exception $e) {
16+
echo $e->getMessage();
17+
}

examples/chatchannels-update.php

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
require_once(__DIR__ . '/../autoload.php');
4+
5+
$MessageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.
6+
7+
$ChatChannel = new \MessageBird\Objects\Chat\Channel();
8+
$ChatChannel->name = 'New name';
9+
$ChatChannel->callbackUrl = 'http://newurl.dev';
10+
11+
12+
try {
13+
14+
$ChatChannelResult = $MessageBird->chatchannels->update($ChatChannel, '331af4c577e3asbbc3631455680736');
15+
var_dump($ChatChannelResult);
16+
17+
} catch (\MessageBird\Exceptions\AuthenticateException $e) {
18+
// That means that your accessKey is unknown
19+
echo 'wrong login';
20+
21+
} catch (\Exception $e) {
22+
echo $e->getMessage();
23+
}

examples/chatchannels-view.php

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
require_once(__DIR__ . '/../autoload.php');
4+
5+
$MessageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.
6+
7+
try {
8+
$ChatChannelResult = $MessageBird->chatchannels->read('0051af4c577e3eebbc3631n95680736'); // Set a channel id here
9+
var_dump($ChatChannelResult);
10+
11+
} catch (\MessageBird\Exceptions\AuthenticateException $e) {
12+
// That means that your accessKey is unknown
13+
echo 'wrong login';
14+
15+
} catch (\Exception $e) {
16+
echo $e->getMessage();
17+
}

examples/chatcontacts-delete.php

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
require_once(__DIR__ . '/../autoload.php');
4+
5+
$MessageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.
6+
7+
try {
8+
9+
$deleted = $MessageBird->chatcontacts->delete('4affa2345d7fb22e373921n524df5409'); // Set a contact id
10+
var_dump('Deleted : ' . $deleted);
11+
12+
} catch (\MessageBird\Exceptions\AuthenticateException $e) {
13+
// That means that your accessKey is unknown
14+
echo 'wrong login';
15+
16+
} catch (\Exception $e) {
17+
echo $e->getMessage();
18+
}

examples/chatcontacts-list.php

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
require_once(__DIR__ . '/../autoload.php');
4+
5+
$MessageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.
6+
7+
try {
8+
9+
$ChatContactResult = $MessageBird->chatcontacts->getList();
10+
var_dump($ChatContactResult);
11+
12+
} catch (\MessageBird\Exceptions\AuthenticateException $e) {
13+
// That means that your accessKey is unknown
14+
echo 'wrong login';
15+
16+
} catch (\Exception $e) {
17+
echo $e->getMessage();
18+
}

examples/chatcontacts-view.php

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
require_once(__DIR__ . '/../autoload.php');
4+
5+
$MessageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.
6+
7+
try {
8+
9+
$ChatContactResult = $MessageBird->chatcontacts->read('0051af4c577e3eebbc3631n95680736'); // Set a contact id here
10+
var_dump($ChatContactResult);
11+
12+
} catch (\MessageBird\Exceptions\AuthenticateException $e) {
13+
// That means that your accessKey is unknown
14+
echo 'wrong login';
15+
16+
} catch (\Exception $e) {
17+
echo $e->getMessage();
18+
}

examples/chatmessages-create.php

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
require_once(__DIR__ . '/../autoload.php');
4+
5+
$MessageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.
6+
7+
$ChatMessage = new \MessageBird\Objects\Chat\Message();
8+
$ChatMessage->contactId = '9d754dac577e3ff103cdf4n29856560';
9+
$ChatMessage->payload = 'This is a test message to test the Chat API';
10+
$ChatMessage->type = 'text';
11+
12+
13+
try {
14+
$ChatMessageResult = $MessageBird->chatmessages->create($ChatMessage);
15+
var_dump($ChatMessageResult);
16+
17+
} catch (\MessageBird\Exceptions\AuthenticateException $e) {
18+
// That means that your accessKey is unknown
19+
echo 'wrong login';
20+
21+
} catch (\MessageBird\Exceptions\BalanceException $e) {
22+
// That means that you are out of credits, so do something about it.
23+
echo 'no balance';
24+
25+
} catch (\Exception $e) {
26+
echo $e->getMessage();
27+
}

examples/chatmessages-list.php

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
require_once(__DIR__ . '/../autoload.php');
4+
5+
$MessageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.
6+
7+
$ChatMessage = new \MessageBird\Objects\Chat\Message();
8+
9+
10+
try {
11+
$ChatMessageResult = $MessageBird->chatmessages->getList();
12+
var_dump($ChatMessageResult);
13+
14+
} catch (\MessageBird\Exceptions\AuthenticateException $e) {
15+
// That means that your accessKey is unknown
16+
echo 'wrong login';
17+
18+
} catch (\Exception $e) {
19+
echo $e->getMessage();
20+
}

examples/chatmessages-view.php

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
require_once(__DIR__ . '/../autoload.php');
4+
5+
$MessageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.
6+
7+
$ChatMessage = new \MessageBird\Objects\Chat\Message();
8+
9+
try {
10+
11+
$MessageResult = $MessageBird->chatmessages->read('d6508edc578ca7641e3919n79796670'); // Set a message id here
12+
var_dump($MessageResult);
13+
14+
} catch (\MessageBird\Exceptions\AuthenticateException $e) {
15+
// That means that your accessKey is unknown
16+
echo 'wrong login';
17+
18+
} catch (\Exception $e) {
19+
echo $e->getMessage();
20+
}

examples/chatplatforms-list.php

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
require_once(__DIR__ . '/../autoload.php');
4+
5+
$MessageBird = new \MessageBird\Client('YOUR_ACCESS_KEY'); // Set your own API access key here.
6+
7+
$ChatPlatform = new \MessageBird\Objects\Chat\Channel();
8+
9+
try {
10+
11+
$ChatPlatformResult = $MessageBird->chatplatforms->getList();
12+
var_dump($ChatPlatformResult);
13+
14+
} catch (\MessageBird\Exceptions\AuthenticateException $e) {
15+
// That means that your accessKey is unknown
16+
echo 'wrong login';
17+
18+
} catch (\Exception $e) {
19+
echo $e->getMessage();
20+
}

src/MessageBird/Client.php

+19
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ class Client
1111
{
1212

1313
const ENDPOINT = 'https://rest.messagebird.com';
14+
const CHATAPI_ENDPOINT = 'https://chat.messagebird.com/1';
1415

1516
const CLIENT_VERSION = '1.4.1';
1617

@@ -59,20 +60,31 @@ class Client
5960
*/
6061
protected $HttpClient;
6162

63+
/**
64+
* @var Common\HttpClient
65+
*/
66+
protected $ChatAPIHttpClient;
67+
6268
/**
6369
* @param string $accessKey
6470
* @param Common\HttpClient $httpClient
6571
*/
6672
public function __construct($accessKey = null, Common\HttpClient $httpClient = null)
6773
{
6874
if ($httpClient == null) {
75+
$this->ChatAPIHttpClient = new Common\HttpClient(self::CHATAPI_ENDPOINT);
6976
$this->HttpClient = new Common\HttpClient(self::ENDPOINT);
7077
} else {
78+
$this->ChatAPIHttpClient = $httpClient;
7179
$this->HttpClient = $httpClient;
7280
}
81+
7382
$this->HttpClient->addUserAgentString('MessageBird/ApiClient/' . self::CLIENT_VERSION);
7483
$this->HttpClient->addUserAgentString($this->getPhpVersion());
7584

85+
$this->ChatAPIHttpClient->addUserAgentString('MessageBird/ApiClient/' . self::CLIENT_VERSION);
86+
$this->ChatAPIHttpClient->addUserAgentString($this->getPhpVersion());
87+
7688
if ($accessKey !== null) {
7789
$this->setAccessKey($accessKey);
7890
}
@@ -84,6 +96,11 @@ public function __construct($accessKey = null, Common\HttpClient $httpClient = n
8496
$this->voicemessages = new Resources\VoiceMessage($this->HttpClient);
8597
$this->lookup = new Resources\Lookup($this->HttpClient);
8698
$this->lookupHlr = new Resources\LookupHlr($this->HttpClient);
99+
$this->chatmessages = new Resources\Chat\Message($this->ChatAPIHttpClient);
100+
$this->chatchannels = new Resources\Chat\Channel($this->ChatAPIHttpClient);
101+
$this->chatplatforms = new Resources\Chat\Platform($this->ChatAPIHttpClient);
102+
$this->chatcontacts = new Resources\Chat\Contact($this->ChatAPIHttpClient);
103+
87104
}
88105

89106
/**
@@ -92,6 +109,8 @@ public function __construct($accessKey = null, Common\HttpClient $httpClient = n
92109
public function setAccessKey ($accessKey)
93110
{
94111
$Authentication = new Common\Authentication($accessKey);
112+
113+
$this->ChatAPIHttpClient->setAuthentication($Authentication);
95114
$this->HttpClient->setAuthentication($Authentication);
96115
}
97116

src/MessageBird/Common/HttpClient.php

+4
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class HttpClient
1515
const REQUEST_GET = "GET";
1616
const REQUEST_POST = "POST";
1717
const REQUEST_DELETE = "DELETE";
18+
const REQUEST_PUT = "PUT";
1819

1920
const HTTP_NO_CONTENT = 204;
2021

@@ -110,6 +111,9 @@ public function performHttpRequest($method, $resourceName, $query = null, $body
110111
curl_setopt($curl, CURLOPT_POSTFIELDS, $body);
111112
} elseif ($method === self::REQUEST_DELETE) {
112113
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, self::REQUEST_DELETE);
114+
} elseif ($method === self::REQUEST_PUT){
115+
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, self::REQUEST_PUT);
116+
curl_setopt($curl, CURLOPT_POSTFIELDS, $body);
113117
}
114118

115119
// Some servers have outdated or incorrect certificates, Use the included CA-bundle

0 commit comments

Comments
 (0)