{"id":22278,"date":"2020-10-30T13:31:02","date_gmt":"2020-10-30T12:31:02","guid":{"rendered":"https:\/\/www.smsapi.pl\/blog\/?p=22278"},"modified":"2024-01-29T14:41:18","modified_gmt":"2024-01-29T13:41:18","slug":"api-smsapi-od-podstaw-poradnik","status":"publish","type":"post","link":"https:\/\/www.smsapi.pl\/blog\/podstawy\/api-smsapi-od-podstaw-poradnik\/","title":{"rendered":"API SMSAPI od podstaw \u2013 poradnik programisty #01"},"content":{"rendered":"\n<p><strong>Zaczynasz prac\u0119 z API SMSAPI? Przeczytaj pierwsz\u0105 cz\u0119\u015b\u0107 poradnika programisty i przejd\u017a przez pi\u0119\u0107 krok\u00f3w do pierwszej wysy\u0142ki SMS po API.<\/strong><\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Nazwa SMSAPI, ma ju\u017c d\u0142ug\u0105, ponad 13-letni\u0105 histori\u0119. Zosta\u0142a zaproponowana przez za\u0142o\u017cycieli firmy, kt\u00f3rzy sami byli programistami i chcieli podkre\u015bli\u0107, \u017ce platforma, kt\u00f3r\u0105 buduj\u0105, jest skierowana szczeg\u00f3lnie dla programist\u00f3w.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-secondary\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.smsapi.pl\/docs\/\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\">Dokumentacja SMSAPI<\/mark><\/a><\/div>\n<\/div>\n\n\n\n<p>Teraz, obok niezwykle wydajnego, stabilnego i daj\u0105cego du\u017ce mo\u017cliwo\u015bci API, nasza marka i charakterystyczny, niebieski kolor kojarzy si\u0119 z <a href=\"https:\/\/ssl.smsapi.pl\/\" target=\"_blank\" rel=\"noopener\">Panelem Klienta<\/a>, kt\u00f3ry codziennie jest aktywnie wykorzystywany przez osoby niezaznajomione z programowaniem. Wiele z nich zapewne nawet nie wie, czym jest drugi cz\u0142on w nazwie SMSAPI \u2013 chc\u0105 po prostu <a href=\"https:\/\/www.smsapi.pl\/masowa-wysylka-sms\">wys\u0142a\u0107 masowe SMS<\/a>!<\/p>\n\n\n\n<p>A jednak nasze API jest ca\u0142y czas utrzymywane, modyfikowane i rozszerzane. Stanowi <strong>fundament naszych wewn\u0119trznych produkt\u00f3w<\/strong>, takich jak <a href=\"https:\/\/www.smsapi.pl\/basebooster\">BaseBooster<\/a>, <a href=\"https:\/\/www.smsapi.pl\/blog\/aktualnosci\/aplikacja-mobilna-smsapi-android-ios\/\">aplikacja mobilna<\/a> czy <a href=\"https:\/\/www.smsapi.pl\/newsletter-sms\">Newsletter SMS<\/a>. Jest tak\u017ce aktywnie wykorzystywane przez naszych klient\u00f3w, czego dowodz\u0105 wywiady z <a href=\"https:\/\/www.smsapi.pl\/blog\/case-study\/iqueue-aplikacja-autoryzacja-sms\/\">iQueue<\/a>, <a href=\"https:\/\/www.smsapi.pl\/blog\/wiedza\/agent-ubezpieczenia-sms-piotr-bartos-insly\/\">Insly<\/a> czy <a href=\"https:\/\/www.smsapi.pl\/blog\/case-study\/sport-it-wywiad-tomasz-cybulski-protrainup\/\">ProTrainUp<\/a>. Chcemy u\u0142atwia\u0107 kolejnym firmom, kt\u00f3re potrzebuj\u0105 efektywnego, szybkiego i niezawodnego \u015brodka komunikacji rozpocz\u0119cie pracy z API.<\/p>\n\n\n\n<p>Zdaj\u0119 sobie spraw\u0119, \u017ce po decyzji \u201eWybieramy SMSAPI i skorzystamy z ich API do komunikacji SMS\u201d, kt\u00f3ra potencjalnie zosta\u0142a podj\u0119ta na innym szczeblu (je\u015bli firma ma rozbudowan\u0105 struktur\u0119 zarz\u0105dzania), lub bardziej spontanicznie (\u201eoooo, to API wygl\u0105da dobrze i ma przyjemn\u0105 dokumentacj\u0119!\u201d) w ko\u0144cu to programista (a mo\u017ce nawet ca\u0142y zesp\u00f3\u0142?) b\u0119dzie musia\u0142 usi\u0105\u015b\u0107 do komputera, odpali\u0107 swoje IDE (albo Emacsa przez Sendmail), zrobi\u0107 sobie kaw\u0119 i rozgryza\u0107 wszystko od pocz\u0105tku.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-blog-smsapi wp-block-embed-blog-smsapi\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"QVx0dX60EO\"><a href=\"https:\/\/www.smsapi.pl\/blog\/wiedza\/komunikacja-sms\/\">Komunikacja SMS \u2013 przegl\u0105d zastosowa\u0144 biznesowych<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8222;Komunikacja SMS \u2013 przegl\u0105d zastosowa\u0144 biznesowych&#8221; &#8212; Blog SMSAPI\" src=\"https:\/\/www.smsapi.pl\/blog\/wiedza\/komunikacja-sms\/embed\/#?secret=nJUnXhLhKx#?secret=QVx0dX60EO\" data-secret=\"QVx0dX60EO\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Dla takich w\u0142a\u015bnie os\u00f3b rozpoczynamy cykl artyku\u0142\u00f3w, kt\u00f3re opisz\u0105 pierwsze kroki, kt\u00f3re trzeba przej\u015b\u0107, aby zacz\u0105\u0107 prac\u0119 z naszym API. Zaczn\u0119 od opisania, jakie kroki musimy przej\u015b\u0107 i jakie decyzje podj\u0105\u0107, \u017ceby wys\u0142a\u0107 pierwszego, testowego SMS-a przez API.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"konto\">Krok 1: Za\u0142\u00f3\u017c i zweryfikuj konto na platformie SMSAPI<\/h2>\n\n\n\n<p>To jest pierwszy i absolutnie najwa\u017cniejszy krok do rozpocz\u0119cia pracy \u2013 <a href=\"https:\/\/www.smsapi.pl\/rejestracja\">konto SMSAPI<\/a>. Jak je za\u0142o\u017cy\u0107 przedstawi Ci nasz screencast. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Rejestracja i weryfikacja konta SMSAPI<\/h3>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Jak utworzy\u0107 konto testowe? | Poradnik SMS API Zr\u00f3b to sam\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/NuuAGlrjuQ0?list=PLI3b3nAycXMbSK_skMpKb0i2ACoGD3rcO\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Oczywi\u015bcie, je\u015bli kto\u015b ju\u017c wcze\u015bniej za\u0142o\u017cy\u0142 i zweryfikowa\u0142 konto, na kt\u00f3rym powiniene\u015b pracowa\u0107, wykorzystaj je albo <a href=\"https:\/\/www.smsapi.pl\/blog\/podstawy\/zrob-to-sam-zarzadzanie-uzytkownikami-konta\/\">rozwa\u017c stworzenie subkonta na potrzeby deweloperskie<\/a>. <\/p>\n\n\n\n<p>\u015awie\u017ce konto po rejestracji i weryfikacji powinno mie\u0107 kilka testowych punkt\u00f3w, kt\u00f3re mo\u017cesz wykorzysta\u0107, \u017ceby wys\u0142a\u0107 kilka pierwszych wiadomo\u015bci.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"polenadawcy\">Krok 2: Dodaj pole nadawcy<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1080\" height=\"1920\" src=\"https:\/\/www.smsapi.pl\/blog\/wp-content\/uploads\/2020\/03\/SMSAPI_Biedronka_SMS.png\" alt=\"SMS wys\u0142any przez sie\u0107 sklep\u00f3w Biedronka\" class=\"wp-image-20769\" style=\"width:250px;height:444px\"\/><figcaption class=\"wp-element-caption\">Przyk\u0142ad wiadomo\u015bci z polem nadawcy SMS<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Pole nadawcy to tekst, kt\u00f3ry b\u0119dzie si\u0119 wy\u015bwietla\u0142 jako nadawca na telefonie, kt\u00f3ry otrzyma SMS-a. Wygl\u0105da to tak, jak na przyk\u0142adzie po prawej.<\/p>\n\n\n\n<p><strong>Pole nadawcy mo\u017ce mie\u0107 maksymalnie 11 znak\u00f3w<\/strong> i warto, \u017ceby odzwierciedla\u0142 mark\u0119, kt\u00f3ra w przysz\u0142o\u015bci b\u0119dzie komunikowa\u0107 si\u0119 z Twoim odbiorc\u0105. <\/p>\n\n\n\n<p>Domy\u015blnym polem nadawcy dla nowego konta w SMSAPI jest \u201eTest\u201d i do testowania jest zupe\u0142nie wystarczaj\u0105ce. Je\u015bli jednak zdecydujesz si\u0119 pracowa\u0107 od razu maj\u0105c docelow\u0105 nazw\u0119 marki, musisz przej\u015b\u0107 procedur\u0119 rejestracji i aktywacji pola nadawcy, pokazan\u0105 w wideo ponizej, kt\u00f3r\u0105 mo\u017cesz <a href=\"https:\/\/ssl.smsapi.pl\/sms_settings\/sendernames\" target=\"_blank\" rel=\"noopener\">wykona\u0107 w Panelu Klienta<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Jak doda\u0107 pole nadawcy SMS w Panelu Klienta SMSAPI?<\/h3>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Konfiguracja konta SMSAPI  | Poradnik SMS API Zr\u00f3b to sam\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/JQP6bILd2js?start=55&#038;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"biblioteki\">Krok 3: Zdecyduj, czy b\u0119dziesz korzysta\u0142 z biblioteki czy API?<\/h2>\n\n\n\n<p>To pierwszy wyb\u00f3r, kt\u00f3ry musisz \u015bwiadomie podj\u0105\u0107. Z jednej strony SMSAPI przygotowa\u0142o dla Ciebie <a href=\"https:\/\/www.smsapi.pl\/sms-api\" class=\"ek-link\">Biblioteki SMS API<\/a> w kilku popularnych j\u0119zykach programistycznych, kt\u00f3re mo\u017cna pobra\u0107 z GitHub.<\/p>\n\n\n<div class=\"infobox infobox--attention post-content--full-width\">\n  <div class=\"infobox__icon\">\n    <img decoding=\"async\" src=\"https:\/\/www.smsapi.pl\/blog\/wp-content\/themes\/smsapi-blog-2021\/assets\/icons\/exclamation.svg\">\n  <\/div>\n  <div class=\"infobox__title\">\n    <h4>Biblioteki SMSAPI na Github<\/h4>\n  <\/div>\n  <div class=\"infobox__content\">\n    <\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/smsapi\/smsapi-php-client\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">PHP<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/smsapi\/smsapi-csharp-client\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">C#<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/smsapi\/smsapi-bash-client\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Bash<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/smsapi\/smsapi-python-client\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Python<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/smsapi\/smsapi-javascript-client\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">JavaScript<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/smsapi\/smsapi-java-client\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Java<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/smsapi\/smsapi-go\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Go<\/a><\/li>\n<\/ul>\n<p>\n  <\/div>\n<\/div>\n\n\n\n<p>Z drugiej strony jest API, kt\u00f3re mo\u017cna wykorzysta\u0107 bezpo\u015brednio, bez u\u017cycia biblioteki. Zosta\u0142o ono dok\u0142adnie opisane oraz okraszone przyk\u0142adami <a href=\"https:\/\/www.smsapi.pl\/docs\/\" class=\"ek-link\">w naszej Dokumentacji<\/a> oraz w formie specyfikacji <a href=\"https:\/\/www.smsapi.pl\/rest\/\">OpenAPI<\/a> wykorzystuj\u0105c popularne narz\u0119dzie Swagger.<\/p>\n\n\n\n<p>To, z kt\u00f3rego narz\u0119dzia skorzystasz b\u0119dzie zale\u017ca\u0142o tylko od Twoich preferencji i od tego, co chcesz osi\u0105gn\u0105\u0107. <strong>Wszystkie biblioteki pozwol\u0105 Ci na wysy\u0142k\u0119 wiadomo\u015bci<\/strong>, niekt\u00f3re na operacje na bazie kontakt\u00f3w. Natomiast mog\u0105 one nie by\u0107 pomocne podczas obs\u0142ugi odbioru wiadomo\u015bci SMS przy pomocy <a href=\"https:\/\/www.smsapi.pl\/odbior-sms\">wirtualnego numeru odbiorczego<\/a>, kt\u00f3rym zajmiemy si\u0119 w jednym z p\u00f3\u017aniejszych artyku\u0142\u00f3w.<\/p>\n\n\n\n<p>Na potrzeby prostych <a href=\"https:\/\/www.smsapi.pl\/integracje\">integracji<\/a>, opartych tylko o wysy\u0142k\u0119 SMS-\u00f3w, <strong>rekomendujemy wykorzystanie jednej z naszych gotowych bibliotek<\/strong>, oczywi\u015bcie pod warunkiem, \u017ce programujesz w j\u0119zyku, w kt\u00f3rym ta biblioteka jest dost\u0119pna. U\u0142atwi i przyspieszy Ci to rozpocz\u0119cie pracy.<\/p>\n\n\n\n<p>Z drugiej strony, je\u015bli planujesz bardziej skomplikowane dzia\u0142ania, kt\u00f3rych biblioteka w Twoim j\u0119zyku programowania nie wspiera, albo nie jeste\u015b zwolennikiem Fluent API (na przyk\u0142adzie biblioteki w JS) i wola\u0142by\u015b mie\u0107 wi\u0119ksz\u0105 kontrol\u0119 nad dok\u0142adnym sposobem dzia\u0142ania integracji, skorzystanie bezpo\u015brednio z API jest r\u00f3wnie dobrym wyborem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"token\">Krok 4: Wygenerowanie klucza autoryzacyjnego<\/h2>\n\n\n\n<p>To jedna z czynno\u015bci, kt\u00f3re wymagaj\u0105 zalogowania do Panelu Klienta. Przejd\u017a w miejsce, pokazane na obrazku poni\u017cej.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/ssl.smsapi.pl\/react\/oauth\/manage\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"730\" height=\"354\" src=\"https:\/\/www.smsapi.pl\/blog\/wp-content\/uploads\/2020\/10\/smsapi-api-poradnik-programisty-1-tokeny-730x354.png\" alt=\"Zarz\u0105dzaj tokenami API (OAuth)\" class=\"wp-image-22306\" style=\"width:650px;height:315px\" srcset=\"https:\/\/www.smsapi.pl\/blog\/wp-content\/uploads\/2020\/10\/smsapi-api-poradnik-programisty-1-tokeny-730x354.png 730w, https:\/\/www.smsapi.pl\/blog\/wp-content\/uploads\/2020\/10\/smsapi-api-poradnik-programisty-1-tokeny-300x145.png 300w, https:\/\/www.smsapi.pl\/blog\/wp-content\/uploads\/2020\/10\/smsapi-api-poradnik-programisty-1-tokeny-150x73.png 150w, https:\/\/www.smsapi.pl\/blog\/wp-content\/uploads\/2020\/10\/smsapi-api-poradnik-programisty-1-tokeny-768x372.png 768w, https:\/\/www.smsapi.pl\/blog\/wp-content\/uploads\/2020\/10\/smsapi-api-poradnik-programisty-1-tokeny-1536x744.png 1536w, https:\/\/www.smsapi.pl\/blog\/wp-content\/uploads\/2020\/10\/smsapi-api-poradnik-programisty-1-tokeny.png 1685w\" sizes=\"auto, (max-width: 730px) 100vw, 730px\" \/><\/a><figcaption class=\"wp-element-caption\">Zarz\u0105dzaj tokenami API (OAuth) w Panelu Klienta SMSAPI<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Nast\u0119pnie kliknij przycisk \u201eGeneruj token\u201d. Zostanie otwarte okienko, w kt\u00f3rym b\u0119dziesz m\u00f3g\u0142 ustawi\u0107 kilka opcji. Na testy (zgodnie z zasad\u0105 minimalizacji dost\u0119pu do danych) wystarczy nam sama mo\u017cliwo\u015b\u0107 wysy\u0142ki SMS przez API, dlatego odznaczymy reszt\u0119 p\u00f3l.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"646\" height=\"759\" src=\"https:\/\/www.smsapi.pl\/blog\/wp-content\/uploads\/2020\/10\/smsapi-api-poradnik-programisty-1-dodaj-token.png\" alt=\"Ustawienia tokenu API (OAuth)\" class=\"wp-image-22305\" style=\"width:650px;height:763px\" srcset=\"https:\/\/www.smsapi.pl\/blog\/wp-content\/uploads\/2020\/10\/smsapi-api-poradnik-programisty-1-dodaj-token.png 646w, https:\/\/www.smsapi.pl\/blog\/wp-content\/uploads\/2020\/10\/smsapi-api-poradnik-programisty-1-dodaj-token-170x200.png 170w, https:\/\/www.smsapi.pl\/blog\/wp-content\/uploads\/2020\/10\/smsapi-api-poradnik-programisty-1-dodaj-token-85x100.png 85w, https:\/\/www.smsapi.pl\/blog\/wp-content\/uploads\/2020\/10\/smsapi-api-poradnik-programisty-1-dodaj-token-128x150.png 128w\" sizes=\"auto, (max-width: 646px) 100vw, 646px\" \/><\/figure>\n<\/div>\n\n\n<p>Po klikni\u0119ciu \u201eGeneruj token\u201d pojawi si\u0119 nowe okienko, w kt\u00f3rym token zostanie wy\u015bwietlony. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"643\" height=\"340\" src=\"https:\/\/www.smsapi.pl\/blog\/wp-content\/uploads\/2020\/10\/smsapi-api-poradnik-programisty-1-token.png\" alt=\"Okienko potwierdzaj\u0105ce wygenerowanie tokenu OAuth\" class=\"wp-image-22314\" style=\"width:650px;height:343px\" srcset=\"https:\/\/www.smsapi.pl\/blog\/wp-content\/uploads\/2020\/10\/smsapi-api-poradnik-programisty-1-token.png 643w, https:\/\/www.smsapi.pl\/blog\/wp-content\/uploads\/2020\/10\/smsapi-api-poradnik-programisty-1-token-300x159.png 300w, https:\/\/www.smsapi.pl\/blog\/wp-content\/uploads\/2020\/10\/smsapi-api-poradnik-programisty-1-token-150x79.png 150w\" sizes=\"auto, (max-width: 643px) 100vw, 643px\" \/><\/figure>\n<\/div>\n\n<div class=\"infobox infobox--attention post-content--full-width\">\n  <div class=\"infobox__icon\">\n    <img decoding=\"async\" src=\"https:\/\/www.smsapi.pl\/blog\/wp-content\/themes\/smsapi-blog-2021\/assets\/icons\/exclamation.svg\">\n  <\/div>\n  <div class=\"infobox__title\">\n    <h4>Uwaga!<\/h4>\n  <\/div>\n  <div class=\"infobox__content\">\n    Ze wzgl\u0119d\u00f3w bezpiecze\u0144stwa, nigdy ju\u017c nie wy\u015bwietlimy Ci ca\u0142ego tokenu, wi\u0119c najlepiej wklei\u0107 go w odpowiednie miejsce w kodzie (a jeszcze lepiej w konfiguracji) od razu. Je\u015bli przypadkowo zamkniesz to okno nie kopiuj\u0105c tokenu, b\u0119dziesz musia\u0142 wygenerowa\u0107 kolejny.\n  <\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"test\">Krok 5: Testowe odwo\u0142anie do API<\/h2>\n\n\n\n<p>Pozostaje Ci teraz <strong>wysy\u0142ka Twojego pierwszego SMS-a przez API<\/strong> SMSAPI! W tym celu wykorzystaj poni\u017cszy kod, w kt\u00f3rego zrozumieniu mo\u017ce pom\u00f3c Ci <a href=\"https:\/\/www.smsapi.pl\/docs\/?php--curl#2-pojedynczy-sms\">nasza Dokumentacja<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-code language-php\"><code>&lt;?php\n\n\/** adres URL API SMSAPI, @see https:\/\/www.smsapi.pl\/docs\/#adresy-url *\/\n\n$smsApiUrl = 'https:\/\/api.smsapi.pl';\n\n\/** token autoryzacyjny OAuth, @see https:\/\/ssl.smsapi.pl\/react\/oauth\/manage *\/\n\n$smsApiToken = 'token_oauth';\n\n\/** pole nadawcy, @see https:\/\/ssl.smsapi.pl\/sms_settings\/sendernames *\/\n\n$from = 'test';\n\n\/** lista odbiorc\u00f3w, ka\u017cdy kolejny oddzielony przecinkiem *\/\n\n$to = 'XXXXXXXXX';\n\n\/** tre\u015b\u0107 wiadomo\u015bci *\/\n\n$message = 'Hello world!';\n\n\/** format odpowiedzi *\/\n\n$format = 'json';\n\n$httpClient = curl_init();\n\ncurl_setopt($httpClient, CURLOPT_URL, $smsApiUrl . '\/sms.do');\n\ncurl_setopt($httpClient, CURLOPT_POST, true);\n\ncurl_setopt($httpClient, CURLOPT_POSTFIELDS, &#091;\n\n    'to' =&gt; $to,\n\n    'from' =&gt; $from,\n\n    'message' =&gt; $message,\n\n    'format' =&gt; $format,\n\n]);\n\ncurl_setopt($httpClient, CURLOPT_RETURNTRANSFER, true);\n\ncurl_setopt($httpClient, CURLOPT_HTTPHEADER, &#091;\n\n    'Authorization: Bearer ' . $smsApiToken\n\n]);\n\n$apiResponse = curl_exec($httpClient);\n\ncurl_close($httpClient);\n\necho $apiResponse . PHP_EOL;\n\n?&gt;<\/code><\/pre>\n\n\n\n<p>To kod, kt\u00f3ry spowoduje wys\u0142anie pierwszej wiadomo\u015bci o zadanej tre\u015bci pod okre\u015blony numer. Oczywi\u015bcie zach\u0119cam do zamiany przyk\u0142adowego numeru na sw\u00f3j w zmiennej $to, \u017ceby by\u0107 w stanie odebra\u0107 t\u0119 pierwsz\u0105 wiadomo\u015b\u0107. \ud83d\ude09 Konieczne jest r\u00f3wnie\u017c wpisanie swojego tokena OAuth do zmiennej $smsApiToken .<\/p>\n\n\n\n<p>Pozostaje nam uruchomienie tego kodu za pomoc\u0105 interpretera PHP. Mo\u017cemy to zrobi\u0107 zapisuj\u0105c powy\u017cszy kod jako plik testowaWysylka.php i na systemie z zainstalowanym interpreterem PHP (wszystkie wersje &gt;= 5.4 powinny sobie ze skryptem poradzi\u0107) uruchamiaj\u0105c go poleceniem<\/p>\n\n\n\n<pre class=\"wp-block-code language-php\"><code>php testowaWysylka.php<\/code><\/pre>\n\n\n\n<p>Je\u015bli wszystkie dotychczasowe kroki wykonali\u015bmy poprawnie, powinni\u015bmy dosta\u0107 komunikat sukcesu w formacie JSON, kt\u00f3ry b\u0119dzie podobny do tego:<\/p>\n\n\n\n<pre class=\"wp-block-code language-javascript\"><code>{\"count\":1,\"list\":&#091;{\"id\":\"566275XXXXX\",\"points\":0.14,\"number\":\"48XXXXXXXXX\",\"date_sent\":1603356627,\"submitted_number\":\"XXXXXXXXX\",\"status\":\"QUEUE\",\"error\":null,\"idx\":null,\"parts\":1}]}<\/code><\/pre>\n\n\n\n<p>A po chwili, na podany telefon powinna przyj\u015b\u0107 wiadomo\u015b\u0107 SMS!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"bledy\">Najcz\u0119stsze b\u0142\u0119dy<\/h2>\n\n\n\n<p>Co, je\u015bli nasz test nie zosta\u0142 zako\u0144czony sukcesem? Wtedy API poda nam numer b\u0142\u0119du, kt\u00f3ry mo\u017ce naprowadzi\u0107 nas na miejsce, w kt\u00f3rym wyst\u0119puje problem. B\u0142\u0119dy, na kt\u00f3re mo\u017cesz natrafi\u0107, s\u0105 <a href=\"https:\/\/www.smsapi.pl\/docs\/#19-kody-bledow\">opisane w Dokumentacji<\/a>. Najcz\u0119stszymi s\u0105:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>b\u0142\u0105d 101<\/strong>, Invalid authorization info \u2013 podano nieprawid\u0142owy token albo po\u0142\u0105czenie do nieprawid\u0142owego serwisu np. do api.smsapi.com zamiast api.smsapi.pl,<\/li>\n\n\n\n<li><strong>b\u0142\u0105d 14<\/strong>, Wrong sender name \u2013 u\u017cycie z\u0142ego pola nadawcy, niedodanego wcze\u015bniej w Panelu Klienta lub nieaktywnego\/odrzuconego,<\/li>\n\n\n\n<li><strong>b\u0142ad 11<\/strong>, The message is too long or there is no message or parameter: nounicode is set and special characters (including Polish characters) are used \u2013 pr\u00f3ba wysy\u0142ki zbyt d\u0142ugiej wiadomo\u015b\u0107 w stosunku do konfiguracji i limitu na koncie \u2013 pami\u0119taj, \u017ce wysy\u0142ka wiadomo\u015bci ze znakami spoza Unicode skraca liczb\u0119 znak\u00f3w dost\u0119pnych w SMS-ie, a dok\u0142adny opis znajdziesz (jak zwykle) w <a href=\"https:\/\/www.smsapi.pl\/docs\/#20-alfabet-7bit-gsm\">Dokumentacji<\/a>,<\/li>\n\n\n\n<li><strong>b\u0142\u0105d 13<\/strong>, Lack of valid phone numbers (invalid or blacklisted numbers) \u2013 wysy\u0142ka pod nieprawid\u0142owe albo zablokowane numery telefon\u00f3w. Nale\u017cy sprawdzi\u0107, czy na pewno wpisywany numer jest prawid\u0142owy i czy nie ma zb\u0119dnych lub dodatkowych znak\u00f3w,<\/li>\n\n\n\n<li><strong>b\u0142\u0105d 103<\/strong>, Insufficient credits on your account \u2013 brak wystarczaj\u0105cej liczby punkt\u00f3w na koncie lub subkoncie.<\/li>\n<\/ul>\n\n\n\n<p>Jest te\u017c kilka cz\u0119stych b\u0142\u0119d\u00f3w, na kt\u00f3re nie naprowadzi nas komunikat b\u0142\u0119du SMSAPI (ani nie od\u0142o\u017c\u0105 si\u0119 w logach), poniewa\u017c wyst\u0105pi\u0142y przed poprawnym po\u0142\u0105czeniem si\u0119 z API SMSAPI. Najcz\u0119\u015bciej to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>po\u0142\u0105czenie do b\u0142\u0119dnego adresu<\/strong> \u2013 <a href=\"ttps:\/\/www.smsapi.pl\/docs\/#adresy-url\">poprawne adresy API znajdziesz w Dokumentacji<\/a>, ale prawdopodobnie chcesz u\u017cy\u0107 https:\/\/api.smsapi.pl\/,<\/li>\n\n\n\n<li><strong>po\u0142\u0105czenie z wykorzystaniem protoko\u0142u TLS w wersji ni\u017cszej ni\u017c 1.2<\/strong> \u2013 nie wspieramy ju\u017c starych wersji protoko\u0142u TLS, kt\u00f3ry jest obecnie uwa\u017cany za niedostatecznie zabezpieczaj\u0105cy przed atakami, wi\u0119c musisz sprawdzi\u0107 wersj\u0119 TLS, z kt\u00f3rej korzysta Tw\u00f3j system (\u015brodowisko) i prawdopodobnie zaktualizowa\u0107 ca\u0142e swoje \u015brodowisko lub jego cz\u0119\u015b\u0107,<\/li>\n\n\n\n<li><strong>po\u0142\u0105czenie zablokowane przez firewall po stronie klienta<\/strong> \u2013 to znaczy, \u017ce na drodze z Twojej maszyny do API SMSAPI po\u0142\u0105czenie jest blokowane. Musisz sprawdzi\u0107 Tw\u00f3j system, albo porozmawia\u0107 z administratorem sieci. Problem rzadko wyst\u0119puje na komputerach programist\u00f3w (prawdopodobnie nie by\u0142by\u015b w stanie przeczyta\u0107 tego artyku\u0142u!), ale w sieciach wyizolowanych do u\u017cycia w serwerowni dbaj\u0105cej o bezpiecze\u0144stwo firmy, taki scenariusz jest mo\u017cliwy. By\u0107 mo\u017ce b\u0119dzie wtedy mo\u017cliwo\u015b\u0107 odblokowania ruchu pod adresy IP serwer\u00f3w SMSAPI.<\/li>\n<\/ul>\n\n\n\n<p>Co dalej? Nasze API SMSAPI ma du\u017co wi\u0119cej mo\u017cliwo\u015bci. Pozwala zarz\u0105dza\u0107 kontaktami, kt\u00f3re mo\u017cna przechowywa\u0107 na koncie SMSAPI, dodawa\u0107 parametry do tre\u015bci SMS-a czy modyfikowa\u0107 ustawienia swojego konta. Opr\u00f3cz tego, mechanizm callback\u00f3w pozwoli Ci obs\u0142u\u017cy\u0107 SMS-y, kt\u00f3re kto\u015b wys\u0142a\u0142 pod numer odbiorczy, kt\u00f3ry przypi\u0105\u0142e\u015b do swojego konta! Wi\u0119cej o tym w kolejnych odcinkach cyklu!<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-blog-smsapi wp-block-embed-blog-smsapi wp-block-embed-blog-smsapi-pl\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"oPdFKjp1gt\"><a href=\"https:\/\/www.smsapi.pl\/blog\/podstawy\/api-smsapi-od-podstaw-odbieranie-sms-online\/\">API SMSAPI od podstaw \u2013 odbieranie SMS online #02<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8222;API SMSAPI od podstaw \u2013 odbieranie SMS online #02&#8221; &#8212; Blog SMSAPI\" src=\"https:\/\/www.smsapi.pl\/blog\/podstawy\/api-smsapi-od-podstaw-odbieranie-sms-online\/embed\/#?secret=nn2tdjc3V9#?secret=oPdFKjp1gt\" data-secret=\"oPdFKjp1gt\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Photo by <a href=\"https:\/\/unsplash.com\/@timothycdykes\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Timothy Dykes<\/a> on <a href=\"https:\/\/unsplash.com\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Unsplash<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Zaczynasz prac\u0119 z API SMSAPI? Przeczytaj pierwsz\u0105 cz\u0119\u015b\u0107 poradnika programisty i przejd\u017a przez pi\u0119\u0107 krok\u00f3w do pierwszej wysy\u0142ki SMS po API.<\/p>\n","protected":false},"author":3,"featured_media":24225,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[321],"tags":[230,223],"class_list":["post-22278","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-podstawy","tag-it","tag-api"],"_links":{"self":[{"href":"https:\/\/www.smsapi.pl\/blog\/wp-json\/wp\/v2\/posts\/22278","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.smsapi.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.smsapi.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.smsapi.pl\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.smsapi.pl\/blog\/wp-json\/wp\/v2\/comments?post=22278"}],"version-history":[{"count":63,"href":"https:\/\/www.smsapi.pl\/blog\/wp-json\/wp\/v2\/posts\/22278\/revisions"}],"predecessor-version":[{"id":30063,"href":"https:\/\/www.smsapi.pl\/blog\/wp-json\/wp\/v2\/posts\/22278\/revisions\/30063"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.smsapi.pl\/blog\/wp-json\/wp\/v2\/media\/24225"}],"wp:attachment":[{"href":"https:\/\/www.smsapi.pl\/blog\/wp-json\/wp\/v2\/media?parent=22278"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.smsapi.pl\/blog\/wp-json\/wp\/v2\/categories?post=22278"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.smsapi.pl\/blog\/wp-json\/wp\/v2\/tags?post=22278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}