Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][cURL] Callback, API
kszere
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.10.2014

Ostrzeżenie: (0%)
-----


Próbuję napisać skrypt pobierający dane z API od smsapi.pl (usługa HLR).
Potrzebuję uzyskać informacje takie jakie podane są w dokumentacji w tabeli.

Nie bardzo ogarniam w jaki sposób muszę to zrobić.
Znajomy podesłał mi link do: http://stackoverflow.com/questions/5452880...on-and-closures
Niestety również nie za bardzo wiem jak ma to wyglądać.

Czy moglibyście mi wytłumaczyć w jaki sposób to przebiega i jak otrzymać te dane?


Dokumentacja API
http://www.smsapi.pl/assets/files/api/SMSAPI_http.pdf
(strona 22, 16 rozdział)
Go to the top of the page
+Quote Post
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Masz kilka wyjść:
1) Nauczyć się PHP
2) Nauczyć się szukać
3) Zmienić profesję...

https://github.com/smsapi/smsapi-php-client
Go to the top of the page
+Quote Post
kszere
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.10.2014

Ostrzeżenie: (0%)
-----


Niestety SMSAPI nie wzięło pod uwagę usługi HLR w bibliotece na GITHUB.
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Przecież w dokumentacji, do której podałeś link jest wyraźnie napisane, że adres callback ma prowadzić do działającego skryptu.
Wywołujesz URL podany w dokumentacji, a w odpowiedzi SMSAPI wywołuje skrypt callback zwracając dane metodą POST.


--------------------
Go to the top of the page
+Quote Post
GregL
post
Post #5





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 2.11.2014

Ostrzeżenie: (0%)
-----


Witam,

Zgadza się najpierw trzeba przesłać GETem parametry username, password, number(sprawdzany numer) oraz idx(opcjonalnie) pod url: http://ssl.smsapi.pl/hlr.do a następnie SMSAPI po sprawdzeniu numeru odwoła się pod ustawiony na koncie (https://ssl.smsapi.pl/client_callbacks/callbacks) adres url z tablicą POST:

id - id zwrócony podczas sprawdzania numeru
number - sprawdzany numer
mcc - numer identyfikujący kraj (ang. Mobile Country Code)
mnc - numer sieci w danym kraju (ang. Mobile Network Code)
info - nazwa sieci, do której należy numer, lub opis błędu
status - OK kiedy numer jest poprawny, FAIL kiedy numer jest błędny (np. wyłączony,nieaktywny itp.)
date - Data, w formacie UNIX timestamp, kiedy numer był sprawdzany
ported - 0 jeżeli numer jest nieprzeniesiony, 1 jeżeli numer jest przeniesiony
ported_from - null kiedy numer jest nieprzeniesiony lub nazwa sieci z której numer został przeniesiony
idx - Opcjonalny parametr użytkownika wysłany z zapytaniem HLR

Także musisz umieścić skrypt na serwerze, który będzie np zapisywał odebrane parametry do bazy danych i ustawić na swoim koncie w SMSAPI adres url do niego.

W razie pytań lub wątpliwości zawsze można pisać na bok@smsapi.pl smile.gif

Ten post edytował GregL 3.11.2014, 09:38:15
Go to the top of the page
+Quote Post
kszere
post
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.10.2014

Ostrzeżenie: (0%)
-----


W chwili obecnej mój kod wygląda tak:
http://wklej.org/hash/68e328fdace/

U mnie ma to wyglądać tak:
1. Ktoś wpisuje numer/numery w formularzu do sprawdzenia na stronie WWW.
2. Dane przekazywane są do skryptu PHP.
3. Skrypt przetwarza otrzymane dane i wykonuje żądanie.
4. ?

W jaki sposób można przekazać otrzymane dane od SMSAPI do użytkownika, który oczekuje na nie na stronie?
Dane z formularza będą przesyłane w tle bez przeładowania strony.

Czy da się zrobić (a bardziej, w jaki sposób?) żeby skrypt oczekiwał na otrzymanie danych od SMSAPI? Czy to dobry pomysł?


Dane wyprowadzane z mego skryptu (API wewnętrzne strony) mają mieć postać:
  1. <numbers_hlr>
  2. <item checkID="id" number="number" status="status" country_code="mcc" network_code="mnc" network_info="info" unixtime="date" transfered="ported" transfered_from="ported_from" error_code="1405" description="bla bla bla"/>
  3. </numbers_hlr>


  1. {
  2. numbers_hlr: {
  3. 48730903309: {
  4. checkID: "id",
  5. number: "number",
  6. status=: "status",
  7. country_code: "mcc",
  8. network_code: "mnc",
  9. network_info: "info",
  10. unixtime: "date",
  11. transfered: "ported",
  12. transfered_from: "ported_from",
  13. error_code: "1405",
  14. description: "bla bla bla"
  15. }
  16. }
  17. }



2014-12-20 23:10 EDIT:
Mam na chwilę obecną zrobione w ten sposób (taki szkielet):
http://wklej.org/hash/353e8895fa4/

Dobry plan?
Jeszcze dorobić przed tym sprawdzanie czy jest w bazie z wciągu 24h ostatnich.

Ciekawi mnie jak to zrobili w wjakiejsieci.pl, bo mają to baaardzo błyskawicznie. Po żądaniu od razu mają dane.
Ktoś wie/pomoże/podpowie? biggrin.gif
Może w cURL to jakoś żąda i zarazem oczekuje?

Ten post edytował kszere 20.12.2014, 23:12:01
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 07:39