@@ 12-67 (lines=56) @@ | ||
9 | * Plivo - Monolog Handler |
|
10 | * @url https://www.plivo.com/docs/api/message/ |
|
11 | */ |
|
12 | class PlivoHandler extends SMSHandler |
|
13 | { |
|
14 | /** |
|
15 | * API version 1 |
|
16 | */ |
|
17 | const API_V1 = 'v1'; |
|
18 | ||
19 | /** |
|
20 | * @param string $authToken Plivo API Auth Token |
|
21 | * @param string $authId Plivo API Auth ID |
|
22 | * @param string $fromNumber The phone number that will be shown as the sender ID |
|
23 | * @param string $toNumber The phone number to which the message will be sent |
|
24 | * @param int $level The minimum logging level at which this handler will be triggered |
|
25 | * @param bool $bubble Whether the messages that are handled can bubble up the stack or not |
|
26 | * @param bool $useSSL Whether to connect via SSL. |
|
27 | * @param string $host The Plivo server hostname. |
|
28 | * @param string $version The Plivo API version (default PlivoHandler::API_V1) |
|
29 | * @param int $limit The character limit |
|
30 | */ |
|
31 | public function __construct($authToken, $authId, $fromNumber, $toNumber, $level = Logger::CRITICAL, $bubble = true, $useSSL = true, $host = 'api.plivo.com', $version = self::API_V1, $limit = 160) |
|
32 | { |
|
33 | if ($version !== self::API_V1) { |
|
34 | throw new Exception('API Version \'{$version}\' is not supported!'); |
|
35 | } |
|
36 | parent::__construct($authToken, $authId, $fromNumber, $toNumber, $level, $bubble, $useSSL, $host, $version, $limit); |
|
37 | } |
|
38 | /** |
|
39 | * {@inheritdoc} |
|
40 | * |
|
41 | * @param array $record |
|
42 | * @return string |
|
43 | */ |
|
44 | protected function buildContent($record) |
|
45 | { |
|
46 | if (strlen($record['formatted']) > $this->limit) { |
|
47 | $record['formatted'] = substr($record['formatted'], 0, $this->limit); |
|
48 | } |
|
49 | ||
50 | $dataArray = array( |
|
51 | 'src' => $this->fromNumber, |
|
52 | 'dst' => $this->toNumber, |
|
53 | 'text' => $record['formatted'], |
|
54 | ); |
|
55 | return json_encode($dataArray); |
|
56 | } |
|
57 | ||
58 | /** |
|
59 | * Builds the URL for the API call |
|
60 | * |
|
61 | * @return string |
|
62 | */ |
|
63 | protected function buildRequestUrl() |
|
64 | { |
|
65 | return "POST /{$this->version}/Account/{$this->authId}/Message/ HTTP/1.1\r\n"; |
|
66 | } |
|
67 | } |
|
68 |
@@ 12-68 (lines=57) @@ | ||
9 | * Twilio - Monolog Handler |
|
10 | * @url https://www.twilio.com/docs/api/rest/sending-messages |
|
11 | */ |
|
12 | class TwilioHandler extends SMSHandler |
|
13 | { |
|
14 | /** |
|
15 | * API version 1 |
|
16 | */ |
|
17 | const API_V1 = '2010-04-01'; |
|
18 | ||
19 | /** |
|
20 | * @param string $secret Twilio API Secret Token |
|
21 | * @param string $sid Twilio API SID |
|
22 | * @param string $fromNumber The phone number that will be shown as the sender ID |
|
23 | * @param string $toNumber The phone number to which the message will be sent |
|
24 | * @param int $level The minimum logging level at which this handler will be triggered |
|
25 | * @param bool $bubble Whether the messages that are handled can bubble up the stack or not |
|
26 | * @param bool $useSSL Whether to connect via SSL. |
|
27 | * @param string $host The Twilio server hostname. |
|
28 | * @param string $version The Twilio API version (default TwilioHandler::API_V1) |
|
29 | * @param int $limit The character limit |
|
30 | */ |
|
31 | public function __construct($secret, $sid, $fromNumber, $toNumber, $level = Logger::CRITICAL, $bubble = true, $useSSL = true, $host = 'api.twilio.com', $version = self::API_V1, $limit = 160) |
|
32 | { |
|
33 | if ($version !== self::API_V1) { |
|
34 | throw new Exception('API Version \'{$version}\' is not supported!'); |
|
35 | } |
|
36 | parent::__construct($secret, $sid, $fromNumber, $toNumber, $level, $bubble, $useSSL, $host, $version, $limit); |
|
37 | } |
|
38 | ||
39 | /** |
|
40 | * {@inheritdoc} |
|
41 | * |
|
42 | * @param array $record |
|
43 | * @return string |
|
44 | */ |
|
45 | protected function buildContent($record) |
|
46 | { |
|
47 | if (strlen($record['formatted']) > $this->limit) { |
|
48 | $record['formatted'] = substr($record['formatted'], 0, $this->limit); |
|
49 | } |
|
50 | ||
51 | $dataArray = array( |
|
52 | 'From' => $this->fromNumber, |
|
53 | 'To' => $this->toNumber, |
|
54 | 'Body' => $record['formatted'], |
|
55 | ); |
|
56 | return json_encode($dataArray); |
|
57 | } |
|
58 | ||
59 | /** |
|
60 | * Builds the URL for the API call |
|
61 | * |
|
62 | * @return string |
|
63 | */ |
|
64 | protected function buildRequestUrl() |
|
65 | { |
|
66 | return "POST /{$this->version}/Accounts/{$this->authId}/Messages.json HTTP/1.1\r\n"; |
|
67 | } |
|
68 | } |
|
69 |