WN

WN (https://www.wn.se/forum/index.php)
-   Feedback (https://www.wn.se/forum/forumdisplay.php?f=20)
-   -   Gratis SMS API - Betatestare (https://www.wn.se/forum/showthread.php?t=1058494)

jonny 2013-07-23 14:53

Ska numret anges utan landskod?

MusikMixen 2013-07-23 15:45

Citat:

Ursprungligen postat av jonny (Inlägg 20474434)
Ska numret anges utan landskod?

Yes..
0736.... räcker!

MusikMixen 2013-07-23 18:28

Conny: När du ändå är igång. Kan du inte fixa ihop ett där man fyller i nummer och meddelande sedan trycker skicka. När det är skickat kommer man till en annan sida där man kan skicka igen. Som det är nu, står det bara "Skickar...." sedan händer det inte mycket mer.

Conny Westh 2013-07-23 19:16

Citat:

Ursprungligen postat av MusikMixen (Inlägg 20474443)
Conny: När du ändå är igång. Kan du inte fixa ihop ett där man fyller i nummer och meddelande sedan trycker skicka. När det är skickat kommer man till en annan sida där man kan skicka igen. Som det är nu, står det bara "Skickar...." sedan händer det inte mycket mer.

Min klass är en API-klass, och har en demo i en Console-applikation.

Det finns en echo som man kan ta bort om man använder den i en riktig implementation och sen får man bygga ett användargränssnitt, ovanpå det. Men sure det går ju enkelt att snitta ihop en app med ett inmatningsfält och en skicka knapp. Fast man bör ju komma till samma sida, så den anropar sig själv, om man kör en webbapp.

Får se vad jag kommer fram till efter nästa fikapaus.... Jag kanske överraskar mig själv....

Conny Westh 2013-07-24 15:08

OK, här kommer en komplett webblösning där man kan skicka SMS via sms.inleed.se och deras sms-API.

autoload.php ska ligga i en underkatalog som heter 'lib'.
PHP-kod:

<?php
// File: autoload.php
// Modified by Conny Westh 2012-09-13
function __autoload($class_name
{
    if(
file_exists($class_name '.php')) 
    {
        require_once(
$class_name '.php');    
    } 
    else 
    {
        throw new 
Exception("Kan inte ladda klass: $class_name.");
    }
}
?>

SmsUtility.php är klassen som anropar API-funktionen hos sms.inleed.se.
PHP-kod:

<?php
////////////////////////////////////////////////////////////////////////////////    
// File: SmsUtility.php
// Date: 2013-07-21 // created file_get_contents()
// Date: 2013-07-23 // added cURL...
// Author: Conny Westh, Adopter KB, 073-898 68 61, [email protected]
// UTF-8 med URLEncode
////////////////////////////////////////////////////////////////////////////////    
// Refgistrera dig och skaffa en sms-nyckel på http://sms.inleed.se 
// Alla SMS skickas idag från nummer 0763448100. 
////////////////////////////////////////////////////////////////////////////////    
class SmsUtility
{
    var 
$smskey;
    
    function 
__construct($smskey)
    {
        
$this->smskey $smskey;
    }
    
    function 
__destruct()
    {
    }
    
    function 
send($recipient$message)
    {
        
$encodedMessage $this->url_encode($message);
        
$url "http://sms.inleed.se/skickaSMS/?nummer=" $recipient "&text=" $encodedMessage "&nyckel=" $this->smskey;
        
// echo $url . "\n";
        
try
        {
            
$this->curl_execute($url); // Using cURL...
            // $this->file_execute($url); // Using file_get_contents()...
        
}
        catch (
Exception $e)
        {
            echo 
$e;
            throw new 
Exception($e);
        }
    }

    
// To use cURL on Windows-platform you need to 
    // copy libeay32.dll and ssleay32.dll to Windows\System32
    // and uncomment ;php_libcurl.dll in php.ini, the maybe reboot PC...
    
function curl_execute($url)
    {
        
$ch curl_init($url);
        
curl_setopt($chCURLOPT_RETURNTRANSFERtrue); 
        
curl_setopt($chCURLOPT_HEADERfalse);
        
curl_exec($ch);
        
curl_close($ch);
    }
    
    function 
file_execute($url)
    {
        
file_get_contents($url); 
    }
     
    function 
url_encode($string)
    {
         return 
rawurlencode(utf8_encode($string));
    }
     
    function 
url_decode($string)
    {
         return 
utf8_decode(rawurldecode($string));
    }    
}

?>


Webbsidan SmsForm.php för att testa applikationen. Man behöver först skaffa en sms-nyckel från http://sms.inleed.se för att köra detta. SMS-Nyckeln matar man in i det första fältet på webbsidan. Men det är ganska självförklarande när man väl ser webbsidan.
PHP-kod:

<html>
    <body>
            <?php
                
////////////////////////////////////////////////////////////////////////////////    
                // File: SmsForm.php
                // Date: 2013-07-24 // created file_get_contents()
                // Author: Conny Westh, Adopter KB, 073-898 68 61, [email protected]
                ////////////////////////////////////////////////////////////////////////////////    
                // Använder SmsUtility.php och /lib/autoload.php
                // För att starta PHPs inbyggda webserver som localhost på port 8000
                // så kör man "PHP -S localhost:8000" på kommandoraden. Sen kan man köra 
                // PHP SmsForm.php och testköra applikationen.
                ////////////////////////////////////////////////////////////////////////////////    
                // Registrera dig och skaffa en sms-nyckel på http://sms.inleed.se 
                // Alla SMS skickas idag från nummer 0763448100. 
                ////////////////////////////////////////////////////////////////////////////////    
                
require_once('/lib/autoload.php');
            
                
$debug=0;
                
$recipientPhoneNumber $_REQUEST['recipient'];
                
$textMessage $_REQUEST['message'];
                
$smsKey $_REQUEST['smsKey'];

                if (
$debug>=1)
                {    
                    print 
'<br>';
                    print 
'Mobilnummer: [';
                    print (
$recipientPhoneNumber);
                    print 
']<br>\n';
                    print 
'Meddelande: [';
                    print (
$textMessage);
                    print 
']<br>\n';
                    print 
'<br>';
                }

                
// Skicka sms...                
                
try
                {
                    
$sms = new SmsUtility($smsKey);
                    
$sms->send($recipientPhoneNumber$textMessage);
                    echo 
"Meddelande: [" $textMessage "] skickat till [" $recipientPhoneNumber "].<br>\n";
                }
                catch (
Exception $e)
                {
                    echo 
"Error: " $e->getMessage() . "<br>\n";
                }
                
            
?>

        
            <h1>Skicka SMS via sms.inleed.se</h1>
            <!-- <form action=selfpost.php method=POST> -->
            <form action="<?php echo $_SERVER['PHP_SELF'];?>"  method="POST">
            <p>
            SMS Key (ca 50 tecken): <input type=text name=smsKey value="<?php echo $smsKey ?>" size=70 maxlength=200></p>
            <p>
            Mottagare (mobilnummer 073...): <input type=text name=recipient value="<?php echo $recipientPhoneNumber ?>" size=15 maxlength=15></p>
            <p>
            Meddelande: <input type=text name=message value="<?php echo $textMessage ?>" size=160 maxlength=160></p>
            <p>
            <input type="submit" value="Skicka"></p>
        
        </form>
        
        <?php
        
        ?>
    </body>
</html>


zenda 2013-07-24 21:34

ConnyWesth goes wild! Det gillas :-)

MusikMixen 2013-07-24 21:41

Tack Conny! Du har möjligtvis inte en liknande för linux som man kan använda på sin sida.. :)

Conny Westh 2013-07-25 01:13

Citat:

Ursprungligen postat av MusikMixen (Inlägg 20474491)
Tack Conny! Du har möjligtvis inte en liknande för linux som man kan använda på sin sida.. :)

Detta är skrivet i PHP så det ska vara exakt samma kod för Linux!

Om man lägger ut den på en öppen sida kanske man ska lägga till escape-skydd mot injection-kod, ska strax fixa det.

Conny Westh 2013-07-26 00:41

Nu har jag lagt upp sidan på http://test.verimentor.se/inleed/sms/ så det går att köra publikt för den som vill testa utan att installera på egen burk.

Detta rullar på en Linuxserver. Jag såg att man måste ändra includepath från '/lib/...' till 'lib/...', detta beror på att det funkade lokalt för mig för jag satte upp den lokala katalogen i min testrigg att vara root men så är det normalt inte vid en "riktig" installation.

Sen måste man även vara noga med att döpa filnamnet 'SmsUtility.php' eftersom Linux-miljön är känslig för gemener/versaler vilket inte Windows-miljön är. Men i övrigt är koden exakt densamma i Windows och Linux-miljön.

Varsågod och testkör, men registrera dig först på sms.inleed.se så du får en sms-nyckel.

Conny Westh 2013-07-26 02:00

Här är källkoden till den uppdaterade SmsForm.php. De övriga filerna 'autoload.php' och 'SmsUtility.php' är oförändrade:

PHP-kod:

<html>
    <body>
            <?php
                
////////////////////////////////////////////////////////////////////////////////    
                // File: SmsForm.php
                // Date: 2013-07-24 // created file_get_contents()
                // Date: 2013-07-26 // fixade bug med sökväg till autoload.php
                // Author: Conny Westh, Adopter KB, 073-898 68 61, [email protected]
                ////////////////////////////////////////////////////////////////////////////////    
                // Använder SmsUtility.php och /lib/autoload.php
                // För att starta PHPs inbyggda webserver som localhost på port 8000
                // så kör man "PHP -S localhost:8000" på kommandoraden. Sen kan man köra 
                // PHP SmsForm.php och testköra applikationen.
                ////////////////////////////////////////////////////////////////////////////////    
                // Registrera dig och skaffa en sms-nyckel på http://sms.inleed.se 
                // Alla SMS skickas idag från nummer 0763448100. 
                ////////////////////////////////////////////////////////////////////////////////    
                
require_once("lib/autoload.php");
            
                
$debug=0;
                
$recipientPhoneNumber $_REQUEST['recipient'];
                
$textMessage $_REQUEST['message'];
                
$smsKey $_REQUEST['smsKey'];

                if (
$debug>=1)
                {    
                    print 
'<br>';
                    print 
'Mobilnummer: [';
                    print (
$recipientPhoneNumber);
                    print 
']<br>\n';
                    print 
'Meddelande: [';
                    print (
$textMessage);
                    print 
']<br>\n';
                    print 
'<br>';
                }

                
// Skicka sms...                
                
try
                {
                    
$sms = new SmsUtility($smsKey);
                    
$sms->send($recipientPhoneNumber$textMessage);
                    echo 
"Meddelande: [" $textMessage "] skickat till [" $recipientPhoneNumber "].<br>\n";
                }
                catch (
Exception $e)
                {
                    echo 
"Error: " $e->getMessage() . "<br>\n";
                }
                
            
?>

        
            <h1>Skicka SMS via sms.inleed.se</h1>
            <!-- <form action=selfpost.php method=POST> -->
            <form action="<?php echo $_SERVER['PHP_SELF'];?>"  method="POST">
            <p>
            SMS Key (ca 50 tecken): <input type=text name=smsKey value="<?php echo $smsKey ?>" size=70 maxlength=200></p>
            <p>
            Mottagare (mobilnummer 073...): <input type=text name=recipient value="<?php echo $recipientPhoneNumber ?>" size=15 maxlength=15></p>
            <p>
            Meddelande (max 160 tecken): <input type=text name=message value="<?php echo $textMessage ?>" size=160 maxlength=160></p>
            <p>
            <input type="submit" value="Skicka"></p>
        
        </form>

        <p>För att läsa mer om denna sida kan du besöka tåden på Wemasternetwork som är ursprunget till denna kod. <a href="http://www.wn.se/t1058494.html">Tråd angående Inleed SMS-tjänst</a>.</p>        
        <p>För att registrera dig hos Inleed.se för att få en sms-nyckel gå till denna länk: <a href="http://sms.inleed.se">http://sms.inleed.se</a> SMS-tjänst.</p>        
        <p>Author: Conny Westh, Date Created: 2013-07-21, Last updated: 2013-07-26, <a href="http://test.verimentor.se/inleed/sms/">http://test.verimentor.se/inleed/sms/</a></p>
        <?php
        
        ?>
    </body>
</html>



Alla tider är GMT +2. Klockan är nu 06:43.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson