|
Busca |
A OVH coloca à disposição de todos, há vários anos, funções SOAPI. Este método permite realizar as acções disponíveis no Manager através de um script : http://www.ovh.com/soapi/pt/ A função da qual vamos necessitar agora chama-se "telephonySmsSend" e está disponível na página : http://www.ovh.com/soapi/pt/?method=telephonySmsSend Pré-requisitos : É indispensável possuir uma conta SMS criada no seu espaço Manager para utilizar a função que iremos descrever. O seu saldo de SMS deve igualmente ser positivo. O número do expeditor deve ser validado a partir do Manager (Secção SMS). Para saber mais, pode consultar o seguinte site : http://www.ovh.pt/sms/pack_sms.xml?step=tech O script de envio : A função que vamos "chamar" via um script PHP necessita de php5, portanto o nome de ficheiro escolhido tem a extensão .php5 (neste caso send.php5) para que não ocorra um erro de versão. O código está comentado para lhe permitir saber o que está a ser executado. Ao longo deste guia iremos tomar como exemplo um NIC-Handle fictício (sms-xx123456-1). O número de telefone do cliente (que não existe) será o "0600110011", seja no formato internacional : "+33600110011" . A documentação de "telephonySmsSend" apresenta-se da seguinte forma : int telephonySmsSend(string session, string smsAccount, string numberFrom, string numberTo, string message, int smsValidity, int smsClass, int smsDeferred, int smsPriority) As variáveis estão descritas na página : http://www.ovh.com/soapi/pt/?method=telephonySmsSend A própria função de envio assemelha-se a : $result = $soap->telephonySmsSend(ligacao_ao_manager, "conta_sms", "numero_do_expeditor", "numero_do_destinatario", "mensagem_do_sms", "tempo_para_o_envio", "tipo_de_sms", "tempo_antes_do_envio", "prioridade_da_sms"); No nosso exemplo iremos ser o mais simples possível, deixando os parâmetros "por defeito" : $result = $soap->telephonySmsSend($session, "sms-xx123456-1", "+33600110011", "numero_do_destinatário", "$message", "", "1", "", ""); Enviar uma SMS a partir do código fonte, funciona bem, mas criar variáveis a fim de implementar um formulário é melhor. Portanto, tomando em conta o nosso exemplo, eis o que podemos propor : É criado um ficheiro HTML na forma : <!-- abertura da tag html --> <html> <!-- abrimos a tag do formulário indicando que o método POST será feito no ficheiro "send.php5", o nome deste formulário é SMS --> <form action="send.php5" method="post" name="sms"> <!-- uma informação sobre a página : aqui indicamos o nome do campo a preencher, bem como o formato a respeitar --> Destinatário : (exemplo para enviar uma SMS para um número de telemóvel francês: +33600110011) <!-- "saltamos" uma linha para a apresentação da página --> <br /> <!-- um campo do tipo "texto" com um tamanho de 20, podendo conter 16 caracteres; o nome deste campo é destinatario --> <input type="text" name="destinatario" size="20" maxlength="16" /> <br /><br /> Mensagem : <br /> <!-- eis a zona de texto para a mensagem SMS, o tamanho da zona é de 30 (colunas de caracteres) em largura com 10 linhas; o nome desta zona é "texto" --> <textarea name="texto" cols="30" rows="10"></textarea> <br /> <!-- enviámos o formulários com o botão enviar; o nome do botão é "enviar" --> <input name="enviar" type="submit" value="send" /> <!-- fechamos a tag do formulário --> </form> <!-- fechamos a tag html --> </html> Chamamos ao ficheiro "form.html" Agora vamos criar o ficheiro send.php5 que será "chamado" pelo formulário form.html : <!-- abertura da tag php --> <?php //introduza o seu NIC-Handle, substitua xx123456-ovh pelo seu próprio NIC-handle $nic="xx123456-ovh"; //Introduza a sua palavra-passe associada ao nic-handle, substituindo ovh123456 pela palavra passe correcta. $pass="ovh123456"; //introduza o nome da sua conta sms, substituindo sms-xx123456-1 pelo valor correcto. $conta_sms="sms-xx123456-1"; /*introduza o número do remetente da sms, este número deverá ser validado no seu Manager, substituindo +33600110011 pelo seu número de telemóvel*/ $from="+33600110011"; /* criação da variável "to" a partir da qual recuperamos via o método POST o campo que tem o nome "destinatario" na página form.html */ $to=$HTTP_POST_VARS['destinatario']; /* criação da variável "mensagem" a partir da qual recuperamos via o método POST o campo que tem o nome "texto" na página form.html */ $message=$HTTP_POST_VARS['texto']; // abertura da função soapi try { // vamos usar "soapi" $soap = new SoapClient("https://www.ovh.com/soapi/soapi-re-1.8.wsdl"); /* ligação ao seu manager usando o seu identificador, aqui utilizaremos a conta xx123456-ovh ($nic) com a palavra passe ovh123456 ($pass), o nic-handle pertence a um cliente francês (fr) */ $session = $soap->login("$nic", "$pass","fr", false); // apresentação da mensagem de sucesso na ligação echo "login successfull\n"; /* utilizaremos aqui a conta sms sms-xx123456-1 ($conta_sms) pertencente ao nic-handle xx123456-ovh, cujo numero 06600110011 ($from) foi já validado no manager e será usado como remetente, o destinatário coloca-se de seguida ($to), a variável $mensagem contém o texto da SMS, o espaço vazio permite deixar os parâmetros por defeito , o "1" força o envio da SMS no formato clássico, a mensagem será guardada no telefone do destinatário */ $result = $soap->telephonySmsSend($session, "$conta_sms", "$from", "$to", "$mensagem", "", "1", "", ""); // apresentação do estado echo "telephonySmsSend successfull\n"; // apresentação do resultado retornado print_r($result); // fechamos a ligação ao Manager $soap->logout($session); // apresentação da confirmação de fecho da sessão echo "logout successfull\n"; } catch(SoapFault $fault) { // apresentação dos erros echo $fault; } // fecho da tag php ?> Se tudo correu bem, terá agora uma página HTML (form.html) a partir da qual poderá introduzir o número de um destinatário via um formulário on-line, bem como uma mensagem a enviar sob a forma de SMS. Se clicar no botão "enviar", a página send.php5 é invocada e a sua SMS é enviada. A saber : Pense em tornar seguro o acesso a estas páginas pois elas permitem utilizar a sua conta e o seu saldo SMS. Visto que utilizámos um script com as variáveis, o envio da SMS pode ser automatizado. Poderá igualmente criar um ciclo que fará envios de SMS em massa. Poderá fazer uma ligação à sua base de dados ... as possibilidades são bastantes. |