-Opgelost- URL aanroepen
Deze gooi ik in een database, ook dit gaat goed.
Maar na het INSERT TO moet er een URL aangesproken worden in de form van:
Code (php)
1
2
3
2
3
http://api.targetsms.nl/ps_handler/sendmessagev2.asp?username=test&handle=d6861a
8f6697a28fe7d92c586178ce55&shortkey=TEST&shortcode=3010&sendto=31612345678&mo_me
ssageid=32479824397&message=Dit+is+een+test&tariff=025&returnid=yes
8f6697a28fe7d92c586178ce55&shortkey=TEST&shortcode=3010&sendto=31612345678&mo_me
ssageid=32479824397&message=Dit+is+een+test&tariff=025&returnid=yes
Maar hoe roep ik deze URL eigenlijk aan na een INSERT?
Of kan dat gewoon met een header functie.
Gewijzigd op 31/07/2012 21:33:19 door Remco schrubben
De url die ik hier boven geef moet ik aanroepen om de verstuurde een berichtje terug te sturen.
Voorbeeld:
- SMSer stuurt: Hoi ik schrijf me graag in voor de informatie.
- Tekst "Hoi ik schijf me graag in voor de informatie." word opgeslagen in de database samen met nodige andere informatie.
- Vervolgens moet ik de server aanroepen met de gegeven url, om een bedank berichtje terug te sturen.
Alleen weet ik niet hoe ik dat doe.
En met welke functie wil je die url aanroepen vanuit de database dan?
Als je echter alleen maar een actie wilt laten uitvoeren via die link, maar de output wilt genereren via de huidige pagin, dan kan je dat doen via bijvoorbeeld file_get_contents(). Die roept de url aan en leest de data die wordt gegenereerd uit. Krijg je geen output terug is er ook niets aan de hand, dan gaat je script gewoon verder.
Ik ben bezig om een SMS dienst op te zetten via TargetSMS.
Mensen sturen dus een SMS naar mij toe met bepaalde $_GET waarders.
Deze waarders lees ik uit en zet ik in een database.
Maar als de SMS aan is gekomen bij ons, moet er een berichtje terug gestuurd worden naar de gene die een SMS heeft gestuurd. Daar heb ik via de site van TargetSMS dus deze url voor gevonden:
Code (php)
1
2
3
2
3
http://api.targetsms.nl/ps_handler/sendmessagev2.asp?username=test&handle=d6861a
8f6697a28fe7d92c586178ce55&shortkey=TEST&shortcode=3010&sendto=31612345678&mo_me
ssageid=32479824397&message=Dit+is+een+test&tariff=025&returnid=yes
8f6697a28fe7d92c586178ce55&shortkey=TEST&shortcode=3010&sendto=31612345678&mo_me
ssageid=32479824397&message=Dit+is+een+test&tariff=025&returnid=yes
Het probleem zit hem dus niet in het ophalen of weg zetten van gegevens in de database maar het probleem zit in het berichten terug sturen naar de SMSer.
Ik krijg van TargetSMS alleen een voorbeeld hoe de url er uit kan zien om een berichtje terug te sturen. Alleen die is niet echt duidelijk met welke php functie ik dat kan doen.
Hier kunt je enige uitleg vinden over terug sturen van sms naar gebruiker toe. Pagina 5 HIER
Je kijkt dan aan de hand van POST of GEt waardes (ligt eraan hoe TargetSMS werkt) naar de data, en verwerkt deze in je database. Als dit gelukt is kan je toch zelf via file_get_content() een bericht terug sturen naar diegene.
Remco schrubben op 31/07/2012 17:01:15:
Alleen die is niet echt duidelijk met welke php functie ik dat kan doen.
Ddat heb ik je dus net uitgelegd, waarbij je het dus niet via de header optie moet doen.
Verder ga ik ervanuit dat je geen probleem hebt met het maken van de url, dat is immers gewoon een string waar je mee kan doen wat je wilt.
file_get_contents().
Of korter...
Zo ik lees zoekt Remco inderdaad iets als Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
// setting the vars
$username = 'test';
$handle = 'd6861a8f6697a28fe7d92c586178ce55';
$shortkey = 'TEST';
$shortcode = '3010';
$sendto = '31612345678';
$mo_messageid = '32479824397';
$message = "Dit is een test";
$tariff = '025';
$returnid = 'yes';
// make request and get the returned_id
$returned_id = file_get_contents("http://api.targetsms.nl/ps_handler/sendmessagev2.asp?".
"username=".$username.
"&handle=".$handle.
"&shortkey=".$shortkey.
"&shortcode=".$shortcode.
"&sendto=".$sendto.
"&mo_messageid=".$mo_messageid.
"&message=".urlencode($message).
"&tariff=".$tariff.
"&returnid=".$returnid);
echo 'Returned id: '.$returned_id. '...<br>';
?>
// setting the vars
$username = 'test';
$handle = 'd6861a8f6697a28fe7d92c586178ce55';
$shortkey = 'TEST';
$shortcode = '3010';
$sendto = '31612345678';
$mo_messageid = '32479824397';
$message = "Dit is een test";
$tariff = '025';
$returnid = 'yes';
// make request and get the returned_id
$returned_id = file_get_contents("http://api.targetsms.nl/ps_handler/sendmessagev2.asp?".
"username=".$username.
"&handle=".$handle.
"&shortkey=".$shortkey.
"&shortcode=".$shortcode.
"&sendto=".$sendto.
"&mo_messageid=".$mo_messageid.
"&message=".urlencode($message).
"&tariff=".$tariff.
"&returnid=".$returnid);
echo 'Returned id: '.$returned_id. '...<br>';
?>
Of korter...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$request['username'] = 'test';
$request['handle'] = 'd6861a8f6697a28fe7d92c586178ce55';
$request['shortkey'] = 'TEST';
$request['shortcode'] = '3010';
$request['sendto'] = '31612345678';
$request['mo_messageid'] = '32479824397';
$request['message'] = "Dit is een test";
$request['tariff'] = '025';
$request['returnid'] = 'yes';
// make request and get the returned_id
$request_uri = '?'.http_build_query($request);
$returned_id = file_get_contents("http://api.targetsms.nl/ps_handler/sendmessagev2.asp".$request_uri);
echo 'Returned id: '.$returned_id. '...<br>';
?>
$request['username'] = 'test';
$request['handle'] = 'd6861a8f6697a28fe7d92c586178ce55';
$request['shortkey'] = 'TEST';
$request['shortcode'] = '3010';
$request['sendto'] = '31612345678';
$request['mo_messageid'] = '32479824397';
$request['message'] = "Dit is een test";
$request['tariff'] = '025';
$request['returnid'] = 'yes';
// make request and get the returned_id
$request_uri = '?'.http_build_query($request);
$returned_id = file_get_contents("http://api.targetsms.nl/ps_handler/sendmessagev2.asp".$request_uri);
echo 'Returned id: '.$returned_id. '...<br>';
?>
Gewijzigd op 31/07/2012 17:40:30 door Eddy E
Santhe ik heb die url aan gegeven. Het binnen halen van de gegevens is niet het probleem. Het versturen van een 1 sms berichtje na binnen komst is het probleem.
Eddy, bedankt voor het voorbeeld. Ik ga deze straks even testen.
Sorry ben niet echt gedreven in php om nieuwe functie;s te maken of uit te schrijven. Ben hier nog lerende in.
http_build_query() is een relatief nieuwe functie, maar wel handig.
Bovenste voorbeeld doet niets meer dan variabelen kopieren en dan kan het net zo goed direct in de string (van tekens).
Het lijkt er op moment op dat alles werkt na behoren.
Ik krijg de gestuurde SMS netjes in de Database.
Tevens na het INSERT TO krijg ik netjes een berichtje terug op mijn telefoon.
Bedankt voor de reactie's.
Die data uit de $request-array van Eddy kan je uit de POST of GET aanroep halen welke je terug krijgt van TargetPay nadat iemand naar jouw keyword heeft geSMSéd
Dit scheelde weer enkele statice invoeringen.
maar goed, is het inmiddels gelukt? ZO niet, waar loop je op vast?
Maar het is gelukt onder tussen.
Zie mijn berichtje van 31/07/2012/ 20:35:15