Skip to content

Commit 32e249b

Browse files
authored
Merge pull request #52 from messagebird/add-mms-messaging
Add MMS messages
2 parents 660cf90 + 1af4f86 commit 32e249b

File tree

9 files changed

+422
-0
lines changed

9 files changed

+422
-0
lines changed

examples/mms-create.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
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+
$MmsMessage = new \MessageBird\Objects\MmsMessage();
8+
$MmsMessage->originator = 'MessageBird';
9+
$MmsMessage->recipients = array(31612345678);
10+
$MmsMessage->subject = "Check out this cool MMS";
11+
$MmsMessage->body = 'Have you seen this logo?';
12+
$MmsMessage->mediaUrls = array('https://www.messagebird.com/assets/images/og/messagebird.gif');
13+
14+
try {
15+
$MmsMessageResult = $MessageBird->mmsMessages->create($MmsMessage);
16+
var_dump($MmsMessageResult);
17+
} catch (\MessageBird\Exceptions\AuthenticateException $e) {
18+
// That means that your accessKey is unknown
19+
echo 'wrong login';
20+
} catch (\MessageBird\Exceptions\BalanceException $e) {
21+
// That means that you are out of credits, so do something about it.
22+
echo 'no balance';
23+
} catch (\Exception $e) {
24+
echo $e->getMessage();
25+
}

examples/mms-delete.php

Lines changed: 18 additions & 0 deletions
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+
$deleted = $MessageBird->mmsMessages->delete('mms_message_id'); // id here
9+
var_dump('Deleted: ' . $deleted);
10+
} catch (\MessageBird\Exceptions\AuthenticateException $e) {
11+
// That means that your accessKey is unknown
12+
echo 'wrong login';
13+
} catch (\MessageBird\Exceptions\BalanceException $e) {
14+
// That means that you are out of credits, so do something about it.
15+
echo 'no balance';
16+
} catch (\Exception $e) {
17+
echo $e->getMessage();
18+
}

examples/mms-list.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
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+
$MmsList = $MessageBird->mmsMessages->getList(array('offset' => 0, 'limit' => 30));
9+
var_dump($MmsList);
10+
} catch (\MessageBird\Exceptions\AuthenticateException $e) {
11+
// That means that your accessKey is unknown
12+
echo 'wrong login';
13+
} catch (\Exception $e) {
14+
var_dump($e->getMessage());
15+
}

examples/mms-view.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
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+
$MmsResult = $MessageBird->mmsMessages->read('mms_message_id'); // Set a MMS Message id
9+
var_dump($MmsResult);
10+
} catch (\MessageBird\Exceptions\AuthenticateException $e) {
11+
// That means that your accessKey is unknown
12+
echo 'wrong login';
13+
} catch (\Exception $e) {
14+
var_dump($e->getMessage());
15+
}

src/MessageBird/Client.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,11 @@ class Client
6464
*/
6565
public $lookupHlr;
6666

67+
/**
68+
* @var Resources\MmsMessages
69+
*/
70+
public $mmsMessages;
71+
6772
/**
6873
* @var Resources\Chat\Message
6974
*/
@@ -125,6 +130,7 @@ public function __construct($accessKey = null, Common\HttpClient $httpClient = n
125130
$this->voicemessages = new Resources\VoiceMessage($this->HttpClient);
126131
$this->lookup = new Resources\Lookup($this->HttpClient);
127132
$this->lookupHlr = new Resources\LookupHlr($this->HttpClient);
133+
$this->mmsMessages = new Resources\MmsMessages($this->HttpClient);
128134
$this->contacts = new Resources\Contacts($this->HttpClient);
129135
$this->groups = new Resources\Groups($this->HttpClient);
130136
$this->chatMessages = new Resources\Chat\Message($this->ChatAPIHttpClient);
Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
<?php
2+
3+
namespace MessageBird\Objects;
4+
5+
/**
6+
* Class MmsMessage
7+
*
8+
* @package MessageBird\Objects
9+
*/
10+
class MmsMessage extends Base {
11+
12+
/**
13+
* An unique random ID which is created on the MessageBird
14+
* platform and is returned upon creation of the object.
15+
*
16+
* @var string
17+
*/
18+
protected $id;
19+
20+
/**
21+
* The url of the created object.
22+
*
23+
* @var string
24+
*/
25+
protected $href;
26+
27+
/**
28+
* Tells you if the message is sent or received.
29+
* mt: mobile terminated (sent to mobile)
30+
* mo: mobile originated (received from mobile)
31+
*
32+
* @var string
33+
*/
34+
public $direction = 'mt';
35+
36+
/**
37+
* The sender of the MMS message. This can be a telephone number
38+
* (including country code) or an alphanumeric string. In case
39+
* of an alphanumeric string, the maximum length is 11 characters.
40+
*
41+
* @var string
42+
*/
43+
public $originator;
44+
45+
/**
46+
* An array of recipients.
47+
*
48+
* @var array
49+
*/
50+
public $recipients = array();
51+
52+
/**
53+
* The subject of MMS the message.
54+
*
55+
* @var string
56+
*/
57+
public $subject;
58+
59+
/**
60+
* The body of the MMS message.
61+
*
62+
* @var string
63+
*/
64+
public $body;
65+
66+
/**
67+
* The array of URL's to the media attachments that you want to
68+
* send as part of the MMS message.
69+
*
70+
* @var array
71+
*/
72+
public $mediaUrls = array();
73+
74+
/**
75+
* A client reference.
76+
*
77+
* @var string
78+
*/
79+
public $reference;
80+
81+
/**
82+
* The scheduled date and time of the message in RFC3339 format (Y-m-d\TH:i:sP)
83+
*
84+
* @var string
85+
*/
86+
public $scheduledDatetime;
87+
88+
/**
89+
* The date and time of the creation of the message in RFC3339 format (Y-m-d\TH:i:sP)
90+
* @var string
91+
*/
92+
public $createdDatetime;
93+
94+
95+
/**
96+
* Get the created id
97+
*
98+
* @return string
99+
*/
100+
public function getId() {
101+
return $this->id;
102+
}
103+
104+
/**
105+
* Get the created href
106+
*
107+
* @return string
108+
*/
109+
public function getHref() {
110+
return $this->href;
111+
}
112+
113+
/**
114+
* Get the $createdDatetime value
115+
*
116+
* @return string
117+
*/
118+
public function getCreatedDatetime() {
119+
return $this->createdDatetime;
120+
}
121+
122+
/**
123+
* @param $object
124+
*
125+
* @return $this|void
126+
*/
127+
public function loadFromArray($object)
128+
{
129+
parent::loadFromArray($object);
130+
131+
if (!empty($this->recipients->items)) {
132+
foreach($this->recipients->items as &$item) {
133+
$Recipient = new Recipient();
134+
$Recipient->loadFromArray($item);
135+
136+
$item = $Recipient;
137+
}
138+
}
139+
140+
return $this;
141+
}
142+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace MessageBird\Resources;
4+
5+
use MessageBird\Common;
6+
use MessageBird\Objects;
7+
8+
/**
9+
* Class MmsMessages
10+
*
11+
* @package MessageBird\Resources
12+
*/
13+
class MmsMessages extends Base {
14+
15+
/**
16+
* @param Common\HttpClient $HttpClient
17+
*/
18+
public function __construct(Common\HttpClient $HttpClient)
19+
{
20+
$this->setObject(new Objects\MmsMessage());
21+
$this->setResourceName('mms');
22+
23+
parent::__construct($HttpClient);
24+
}
25+
}

tests/integration/BaseTest.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
<?php
22
class BaseTest extends PHPUnit_Framework_TestCase
33
{
4+
/** @var \MessageBird\Client */
5+
protected $client;
6+
7+
/** @var PHPUnit_Framework_MockObject_MockObject */
8+
protected $mockClient;
9+
410
public function setUp()
511
{
612
$this->mockClient = $this->getMockBuilder("\MessageBird\Common\HttpClient")->setConstructorArgs(array("fake.messagebird.dev"))->getMock();
13+
$this->client = new \MessageBird\Client('YOUR_ACCESS_KEY', $this->mockClient);
714
}
815

916
public function testClientConstructor()

0 commit comments

Comments
 (0)