Closed kefahB closed 8 years ago
Bonjour,
Le deuxième lien semble bon. Avez vous la même erreur avec ? Si oui, pouvez vous envoyer le code que vous utilisez pour produire cette erreur (sans les credentials bien entendu)
Cordialement
Merci pour votre réponse, avec le deuxième liens je n'arrive même pas à faire un getAccounts() ! mais avec le premier j'obtiens bien mon account sms mais dès que je déclare le setAccount ca ne marche plus !
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Sms\SmsApi;
$applicationKey = "---";
$applicationSecret = "---";
$consumer_key = "---";
$endpoint = 'ovh-eu';
$Sms = new SmsApi(
$applicationKey,
$applicationSecret,
$endpoint,
$consumer_key
);
// Get available SMS accounts
$accounts = $Sms->getAccounts();
echo($accounts[0]);
// Set the account you will use
$Sms->setAccount($accounts[0]);
Ah ok,
Et avec ce lien ? https://api.ovh.com/createToken/index.cgi?GET=/sms/&GET=/sms/*&PUT=/sms/*&DELETE=/sms/*&POST=/sms/*
Toujours error ! est ce que le faite d'avoir un password à la racine du site (dans .htaccess) étant que le site est en développement fait cette erreur ?!
Fatal error: Uncaught exception 'GuzzleHttp\Exception\ClientException' with message 'Client error response [url] https://api.ovh.com/1.0/sms [status code] 403 [reason phrase] Forbidden' in /home/******/www/send_sms/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:89 Stack trace: #0 /home//******/www/send_sms/vendor/guzzlehttp/guzzle/src/Subscriber/HttpError.php(33): GuzzleHttp\Exception\RequestException::create(Object(GuzzleHttp\Message\Request), Object(GuzzleHttp\Message\Response)) #1 /home//******/www/send_sms/vendor/guzzlehttp/guzzle/src/Event/Emitter.php(109): GuzzleHttp\Subscriber\HttpError->onComplete(Object(GuzzleHttp\Event\CompleteEvent), 'complete') #2 /home//******/www/send_sms/vendor/guzzlehttp/guzzle/src/RequestFsm.php(91): GuzzleHttp\Event\Emitter->emit('complete', Object(GuzzleHttp\Event\CompleteEvent)) #3 /home//******/www/send_sms/vendor/guzzlehttp/guzzle/src/RequestFsm.php(132): GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction)) #4 /home/cocarzfrie/www/send_sms/vend in /home//******/www/send_sms/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php on line 89
Bonjour,
Je viens de tester ton code avec le dernier lien que je viens de donner (https://api.ovh.com/createToken/index.cgi?GET=/sms/&GET=/sms/*&PUT=/sms/*&DELETE=/sms/*&POST=/sms/*) et cela fonctionne. Est ce que les trois credentials ont bien été modifiés dans le script ?
Par contre, je me suis rendu compte d'une coquille dans le readme, j'ouvre une pull request :)
J'ai supprimé et réinstaller le tout avec les nouveaux parms, je n'ai plus le code d'erreur mais en attendant ca n'envoie pas de sms !
// Get available SMS accounts
$accounts = $Sms->getAccounts();
// Set the account you will use
$Sms->setAccount($accounts[0]);
// Create a new message
$Message = $Sms->createMessage(true);
$Message->addReceiver("+352661466620");
$Message->setIsMarketing(false);
$Message->send("Hello world!");
C'est quoi le retour que tu obtiens ?
@golgeek une idée ?
Bonjour, Merci pour tout, j'ai fait celà pour que ca marche si le numéro n'est pas en France :
$host = $Sms->getSenders();
$modifySender = new Message( $Sms );
$modifySender->setSender($host[0]);
$modifySender->addReceiver( "+352661466620" );
$modifySender->setIsMarketing( false );
debug( $modifySender->send( "Hello world!" ) );
Hum, et cela fonctionne ou pas ? Quelle est le retour des fonctions si cela ne marche pas ?
Oui ça marche ainsi, si non étant donné que le numéro n'est pas Français (Luxembourgeois) j'ai fait cela :
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Sms\SmsApi;
use \Ovh\Sms\Message;
$applicationKey = "*****";
$applicationSecret = "*****";
$consumer_key = "*****";
$endpoint = 'ovh-eu';
$Sms = new SmsApi( $applicationKey, $applicationSecret, $endpoint, $consumer_key );
// Get available SMS accounts
$accounts = $Sms->getAccounts();
// Set the account you will use
$Sms->setAccount( $accounts[ 0 ] );
function cczSms ($sender, $msg = null, $api, $msgNoRespons = null) {
if ( substr( $sender, 0, 2 ) == "00" ) {
$sender = "+" . substr( $sender, 2, strlen( $sender ) );
}
if ( substr( $sender, 0, 3 ) == "+33" ) {
$Message = $api->createMessage(true);
$Message->addReceiver( $sender );
$Message->setIsMarketing( false );
$Message->send( $msg );
} else {
$host = $api->getSenders();
$modifySender = new Message( $api );
$modifySender->setSender($host[0]);
$modifySender->addReceiver( $sender );
$modifySender->setIsMarketing( false );
$modifySender->send( $msgNoRespons );
}
}
$sender = "00352555555555";
$msg = "Répondez par o pour oui si non n pour non";
$msgWithoutRespons = "Veuillez vous connecter sur votre compte pour répondre à la demande !";
cczSms($sender, $msg, $Sms, $msgWithoutRespons);
ains ca fonctionne bien pour le moment !
Parfait :)
Le problème est donc résolu. Je ferme donc cette issue.
@kefahB Bonjour, quelle est le lien que tu as utilisé pour la création de tes tokens?
Bonjour, Finalement j'ai utilisé le liens proposé par Vincent, le voici : [https://api.ovh.com/createToken/index.cgi?GET=/sms/&GET=/sms/*&PUT=/sms/*&DELETE=/sms/*&POST=/sms/*]
@kefahB D'accord merci. Je vais essayer sa. En suivant également tes instructions. Tu utilise Laravel comme framework?
Non, j'utilise php classique, sachant que je ne suis pas un programmeur pro, j'ai appris tout seul donc méfiance :)
@kefahB D'accord, merci. Mais quand tu serais un peu habitué pense à passé à Laravel c'est pas mal comme framework.
merci pour le conseil ;)
@kefahB J'ai cet erreur "Undefined offset: 0" elle est du au faite que getAccounts()
me retourne un champ vide. Es ce parce que j'ai pas de crédit sms sur mon compte OVH?
est ce qu'après déclarer ça tu a au moins le nom de ton compte sms ? si non il faut demandé à vincent peut être il le sera car je n'ai pas eu une erreur pareille !
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Sms\SmsApi;
use \Ovh\Sms\Message;
$applicationKey = "*****";
$applicationSecret = "*****";
$consumer_key = "*****";
$endpoint = 'ovh-eu';
$Sms = new SmsApi( $applicationKey, $applicationSecret, $endpoint, $consumer_key );
// Get available SMS accounts
print_r( $accounts = $Sms->getAccounts() );
peut être un bout de code pour voir ?
<?php
namespace App\Http\Controllers\Back\User;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use \Ovh\Sms\SmsApi;
class SendController extends Controller
{
public function index()
{
return view('back.user.pages.send');
}
public function onSend(Request $request)
{
$applicationKey = "-------------";
$applicationSecret = "-------------";
$endpoint = "ovh-eu";
$consumerKey = "-------------";
// Init SmsApi object
$Sms = new SmsApi( $applicationKey, $applicationSecret, $endpoint, $consumerKey );
// Get available SMS accounts
$accounts = $Sms->getAccounts();
print_r( $accounts);
// Set the account you will use
$Sms->setAccount($accounts[0]);
}
}
En retour pour print_r()
j'ai Array()
et pour $Sms->setAccount($accounts[0]);
j'ai un message d'erreur Undefined offset: 0
si getAccounts() ne retourne rien c'est que votre compte sms n'existe pas ou il est suspendu ou les credancial ne sont pas les bonnes ?! parce que normalement getAccounts() devrait retourner le nom de votre service un truc du genre sms-db123456-1 et c'est normal que setAccount() retourne cela car il ne trouve pas de compte pour l'utiliser ! @VincentCasse est ce que le faites d'avoir 0 crédit fait cela ?
@kefahB Merci. Je vais demandé les conseils chez @VincentCasse. @VincentCasse Tu peux me venir en aide?
salut @dehboris,
Si tu recois une liste vide, c'est que tu n'as pas acheté de "service sms". En gros, t'as pas de crédit liè à ton compte.
Tu peux en acheter sur cette page https://www.ovh.com/fr/cloud/paas-sms.xml
@VincentCasse D'accord merci pour le conseil, je vais le faire.
Note que cela peut être facilement détecté avec
if(count($account) == 0) {
// Oups, pas de service SMS...
}
cher @VincentCasse , je ne sais pas qu'est ce qui se passe avec l'api, mais le même erreur revient c'est la 2émé fois ! la première j'ai du supprimer le compte l'api et recréer un de nouveau parce que les credentials ont été modifié par rapport à celles que vous m'avez envoyé ! pourtant je n'ai pas de code qui fait des modification sur le compte ! avec le nouveau compte ça marchait et maintenant ca ne marche plus !
<b>Fatal error</b>: Uncaught exception 'GuzzleHttp\Exception\ClientException' in /home/******/www/send_sms/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:89
Stack trace:
#0 /home/******/www/send_sms/vendor/guzzlehttp/guzzle/src/Subscriber/HttpError.php(33): GuzzleHttp\Exception\RequestException::create(Object(GuzzleHttp\Message\Request), Object(GuzzleHttp\Message\Response))
#1 /home/******/www/send_sms/vendor/guzzlehttp/guzzle/src/Event/Emitter.php(109): GuzzleHttp\Subscriber\HttpError->onComplete(Object(GuzzleHttp\Event\CompleteEvent), 'complete')
#2 /home/******/www/send_sms/vendor/guzzlehttp/guzzle/src/RequestFsm.php(91): GuzzleHttp\Event\Emitter->emit('complete', Object(GuzzleHttp\Event\CompleteEvent))
#3 /home/******/www/send_sms/vendor/guzzlehttp/guzzle/src/RequestFsm.php(132): GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))
#4 /home/******/www/send_sms/vendor/react/promise/src/FulfilledPromise.php(25): GuzzleHttp\RequestFsm->GuzzleHttp\{closure}(Array)
#5 /home/****** in <b>/home/******/www/send_sms/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php</b> on line <b>89</b><br />
Pourquoi votre site indique qu'il faut créer une App sur: https://eu.api.ovh.com/createApp/ Alors que l'adresse est : https://api.ovh.com/createToken/index.cgi?GET=/sms&GET=/sms/*&PUT=/sms/*&DELETE=/sms/*&POST=/sms/* ?
Ca porte vraiment à confusion tout ça.
Afin de clarifier la gestion des issues pour tout le monde, je vous invite à ouvrir une issue dédiée à votre question et de poster sur api@ml.ovh.net.
Bonjour, J'ai le même erreur ! et j'ai essayé de changer les credentials comme vous avez indiqué mais, je fait u $sms->getAccounts() et ca retourn bien le compte sms, mais dès que je fait setAccount() ou autre ca retourne le code suivant :
Fatal error: Uncaught exception 'GuzzleHttp\Exception\ClientException' with message 'Client error response [url] https://api.ovh.com/1.0/sms/sms-******-1 [status code] 403 [reason phrase] Forbidden' in /home/-_-/www/send_sms/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:89 Stack trace: #0 /home/--/www/send_sms/vendor/guzzlehttp/guzzle/src/Subscriber/HttpError.php(33): GuzzleHttp\Exception\RequestException::create(Object(GuzzleHttp\Message\Request), Object(GuzzleHttp\Message\Response)) #1 /home/--/www/send_sms/vendor/guzzlehttp/guzzle/src/Event/Emitter.php(109): GuzzleHttp\Subscriber\HttpError->onComplete(Object(GuzzleHttp\Event\CompleteEvent), 'complete') #2 /home/--/www/send_sms/vendor/guzzlehttp/guzzle/src/RequestFsm.php(91): GuzzleHttp\Event\Emitter->emit('complete', Object(GuzzleHttp\Event\CompleteEvent)) #3 /home/--/www/send_sms/vendor/guzzlehttp/guzzle/src/RequestFsm.php(132): GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction)) #4 /home/--/ww in /home/-_-/www/send_sms/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php on line 89
j'ai testé sur les deux https://api.ovh.com/createToken/index.cgi?GET=/sms/&PUT=/sms/&DELETE=/sms/&POST=/sms/ et https://api.ovh.com/createToken/index.cgi?GET=/sms/*&PUT=/sms/*&DELETE=/sms/*&POST=/sms/*