to send SMS Reports from Piwik.

About Clockwork: '; } public function verifyCredential($credentials) { $this->getCreditLeft($credentials); return true; } public function sendSMS($credentials, $smsText, $phoneNumber, $from) { $from = substr($from, 0, self::MAXIMUM_FROM_LENGTH); $smsText = self::truncate($smsText, self::MAXIMUM_CONCATENATED_SMS); $additionalParameters = array( 'To' => str_replace('+', '', $phoneNumber), 'Content' => $smsText, 'From' => $from, 'Long' => 1, 'MsgType' => self::containsUCS2Characters($smsText) ? 'UCS2' : 'TEXT', ); $this->issueApiCall( $credentials['apiKey'], self::SEND_SMS_RESOURCE, $additionalParameters ); } private function issueApiCall($apiKey, $resource, $additionalParameters = array()) { $accountParameters = array( 'Key' => $apiKey, ); $parameters = array_merge($accountParameters, $additionalParameters); $url = self::BASE_API_URL . $resource . '?' . Http::buildQuery($parameters); $timeout = self::SOCKET_TIMEOUT; try { $result = Http::sendHttpRequestBy( Http::getTransportMethod(), $url, $timeout, $userAgent = null, $destinationPath = null, $file = null, $followDepth = 0, $acceptLanguage = false, $acceptInvalidSslCertificate = true ); } catch (Exception $e) { $result = self::ERROR_STRING . " " . $e->getMessage(); } if (strpos($result, self::ERROR_STRING) !== false) { throw new APIException( 'Clockwork API returned the following error message : ' . $result ); } return $result; } public function getCreditLeft($credentials) { return $this->issueApiCall( $credentials['apiKey'], self::CHECK_CREDIT_RESOURCE ); } }