12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- class OvhSms{
- const ENDPOINT = 'https://eu.api.ovh.com/1.0';
- public $key,$secret,$consumer;
- function services(){
- return $this->rest(self::ENDPOINT.'/sms','GET');
- }
- //Infos sur le serrvice (credits restants etc...)
- /* eg service : sms-ry3016-1 */
- function infos($service){
- return $this->rest(self::ENDPOINT.'/sms/'.$service.'','GET');
- }
- //Sms reçu
- /* eg service : sms-ry3016-1 */
- function incoming($service){
- return $this->rest(self::ENDPOINT.'/sms/'.$service.'/incoming','GET');
- }
- //Sms en cours d'envois & etat
- /* eg service : sms-ry3016-1 */
- function pending($service){
- return $this->rest(self::ENDPOINT.'/sms/'.$service.'/jobs','GET');
- }
- //https://docs.ovh.com/fr/sms/envoyer_des_sms_avec_lapi_ovh_en_java/
- function send($service,$phone,$message){
- return $this->rest(self::ENDPOINT.'/sms/'.$service.'/jobs','POST',json_encode(array(
- 'message' => $message,
- 'charset' => 'UTF-8',
- 'senderForResponse' => true,
- 'receivers' => array($phone)
- )));
- }
- function rest($url,$method,$fields = array(),$headers = array()){
- $timestamp = file_get_contents(self::ENDPOINT.'/auth/time');
- $signature = $this->secret.'+'.$this->consumer.'+'.$method.'+'.$url.'++'.$timestamp;
- $signature = '$1$'.sha1($signature);
- $ch = curl_init();
- $curlOptions = array(
- CURLOPT_RETURNTRANSFER => 1,
- CURLOPT_URL => $url,
- CURLOPT_SSL_VERIFYPEER => false,
- CURLOPT_SSL_VERIFYHOST=> false,
- CURLOPT_USERAGENT => 'GuzzleHttp/6.5.3 curl/7.58.0 PHP/7.2.24-0ubuntu0.18.04.4',
- CURLOPT_SSLVERSION => 6,
- CURLOPT_FOLLOWLOCATION => true,
- CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
- CURLOPT_HTTPHEADER => array_merge(array(
- 'Content-Type: application/json; charset=utf-8',
- 'X-Ovh-Application: '.$this->key,
- 'X-Ovh-Timestamp: '.$timestamp,
- 'X-Ovh-Signature: '.$signature,
- 'X-Ovh-Consumer: '.$this->consumer,
- ),$headers)
- );
- $curlOptions[CURLOPT_CUSTOMREQUEST] = $method;
- if(!empty($fields) || $method=='POST'){
- $curlOptions[CURLOPT_POST] = 1;
- $curlOptions[CURLOPT_POSTFIELDS] = $fields;
- }else{
- $curlOptions[CURLOPT_POST] = false;
- }
- $curlOptions[CURLINFO_HEADER_OUT] = true;
- curl_setopt_array($ch,$curlOptions);
- $result = curl_exec($ch);
- if($result === false) throw new Exception('Curl error : '.$result.curl_error($ch));
- return json_decode($result,true);
- curl_close ($ch);
- }
- }
- ?>
|