Spis treści 7 sekcji

FreshMail API pozwala połączyć aplikację napisaną w PHP z kontem FreshMail i obsługiwać dane oraz kampanie przez żądania API.
Ten poradnik prowadzi przez uwierzytelnianie, pracę z subskrybentami i uruchamianie wysyłki. Pokazuje też, jak odczytywać odpowiedzi i rozpoznawać błędy integracji. Dokumentacja REST API v2 opisuje 6 operacji dotyczących pojedynczych subskrybentów oraz 5 operacji dotyczących kampanii1.

Jak skonfigurować dostęp do FreshMail API i uwierzytelnić żądania w PHP?

Zanim aplikacja PHP wyśle żądanie do FreshMail API, przygotuj dane dostępowe konta. Następnie skonfiguruj uwierzytelnianie według schematu z dokumentacji.
W wariancie opartym na kluczu i podpisie żądanie musi zawierać 2 nagłówków: X-Rest-ApiKey i X-Rest-ApiSign1.

Na koncie FreshMail znajdź API key, który identyfikuje dostęp do API, oraz powiązany z nim API secret. Umieść oba w konfiguracji środowiska, nie w kodzie dostępnym publicznie.
Ten sposób uwierzytelniania wymaga przechowywania 2 odrębnych danych: API key i API secret1.

Klient PHP powinien wysyłać żądania przez HTTPS i dołączać dane uwierzytelniające zgodnie z dokumentacją FreshMail API. Sekretu nie wpisuj ani do adresu żądania, ani do treści strony internetowej.
Połączenie HTTPS domyślnie korzysta z portu 4432.

Po konfiguracji klient PHP dołącza dane dostępowe do żądań. API secret pozostaje poza publicznym kodem aplikacji3.

Jak dodawać i aktualizować subskrybentów przez FreshMail API w PHP?

Przez FreshMail API aplikacja PHP może przekazać dane subskrybenta do wybranej listy mailingowej, czyli zbioru odbiorców kampanii.
Aby dodać pojedynczy kontakt, podaj 1 identyfikatora listy: jej hash w polu „list”4.

  • Wybór listy mailingowej wskazuje zbiór odbiorców, którego ma dotyczyć żądanie aplikacji PHP.
  • Przygotowanie danych subskrybenta obejmuje adres e-mail i informacje przekazywane do FreshMail. Dane nowego kontaktu oddziel od zmian w istniejącym kontakcie.
  • Dodanie subskrybenta wymaga wysłania z PHP żądania dla nowego kontaktu według schematu FreshMail API.
  • Aktualizacja subskrybenta wymaga wskazania istniejącego kontaktu i przekazania zmienionych danych według schematu FreshMail API.

Aplikacja PHP obsługuje dodanie i aktualizację przez 2 odrębne operacje4:

OperacjaZastosowanie
subscriber/addDodanie nowego kontaktu do listy.
subscriber/editZmiana danych kontaktu już zapisanego na liście.

Jak uruchomić wysyłkę kampanii FreshMail przez API w PHP?

Aplikacja PHP uruchamia wysyłkę przygotowanej kampanii żądaniem opisanym w dokumentacji używanej wersji FreshMail API. Najpierw wskaż kampanię i jej odbiorców.
Żądanie campaigns/send wymaga 1 identyfikatora kampanii: jej hasha1.

  • Kampania FreshMail powinna mieć gotowy temat, nadawcę i treść wiadomości. Sprawdź je przed uruchomieniem wysyłki.
  • Odbiorcy kampanii powinni należeć do zamierzonej grupy. Zweryfikuj listę mailingową lub segment, czyli część odbiorców wyodrębnioną według określonych kryteriów.
  • Żądanie wysyłki przygotuj w PHP według metody i pól podanych w dokumentacji FreshMail API. Przekaż identyfikator właściwej kampanii.
  • Odpowiedź API zapisz w aplikacji PHP, by odróżnić przyjęcie żądania od błędu. Przyjęcie żądania nie potwierdza dostarczenia wiadomości odbiorcom.

Wysyłkę uruchamia żądanie dotyczące przygotowanej kampanii. Wynik tego żądania aplikacja odczytuje z odpowiedzi API.
Dokumentacja podaje kod HTTP 200 dla żądania zakończonego bez błędu1.

Jak przetestować integrację PHP i rozpoznać błędy odpowiedzi API?

Integrację PHP z FreshMail API przetestuj kontrolowanym żądaniem. Osobno przeanalizuj połączenie, status HTTP i treść odpowiedzi API.
Dzięki temu ustalisz, czy błąd dotyczy przesyłania danych, uwierzytelniania, czy wykonania operacji.

  • Żądanie testowe skieruj do operacji, której wynik zweryfikujesz bez rzeczywistej wysyłki. Zapisz typ operacji i czas jej wykonania.
  • Połączenie HTTP oceń na podstawie wyniku klienta PHP. Błąd połączenia odróżnij od odpowiedzi serwera na dostarczone żądanie5.
  • Status odpowiedzi odczytaj przed sprawdzeniem jej treści. Samo otrzymanie odpowiedzi nie oznacza jeszcze, że FreshMail wykonał operację.
  • Treść odpowiedzi API porównaj ze strukturą opisaną w dokumentacji używanej wersji. Zapisz komunikat błędu i identyfikator operacji, jeśli odpowiedź go zawiera.
  • Dziennik aplikacji prowadź bez zapisywania sekretów dostępowych i pełnych danych subskrybentów. Połącz wpis o żądaniu z wpisem dotyczącym odpowiedzi.

Zestawienie wyniku połączenia, statusu HTTP i treści odpowiedzi API pomaga wskazać miejsce błędu.
Zakresy kodów HTTP mają następujące znaczenie6:

Kody HTTPZnaczenie
200–299Powodzenie
400–499Błąd po stronie żądania
500–599Błąd serwera

Do czego jeszcze służy FreshMail API w integracji z PHP?

FreshMail API może też połączyć witrynę WordPress z kontem FreshMail. Zapisy zbiera wówczas wtyczka FreshMail For WordPress.
Aby ją połączyć, wpisz klucz API i sekret API w zakładce „FreshMail > Connect with FreshMail”7.

FreshMail For WordPress pozwala dodać pole zapisu na listę do wybranego formularza WordPress, na przykład formularza komentarzy7. Wtyczka zawiera również FreshMail Widget, który wyświetla formularz w obszarze widżetów, takim jak pasek boczny7.
Opis wtyczki wskazuje 2 sposoby udostępnienia zapisu8:

Sposób zapisuMiejsce wyświetlania
Pole wyboruWybrany formularz WordPress, na przykład formularz komentarzy
FreshMail WidgetObszar widżetów, na przykład pasek boczny

Poniższa tabela zestawia minimalne wersje WordPress i PHP wymagane przez FreshMail For WordPress.
Opis wtyczki podaje minimalną wymaganą wersję PHP 5.38.

ŚrodowiskoMinimalna wersja
WordPress3.0
PHP5.3

Dane w tabeli: 7

Podczas konfiguracji pola zapisu wybierz co najmniej 1 listy FreshMail7.
Integracja skieruje na nią zapisy z wybranego formularza lub widżetu WordPress.

Najczęściej zadawane pytania

Jaki zakres operacji opisuje REST API v2 FreshMail?

Dokumentacja opisuje 6 operacji dotyczących pojedynczych subskrybentów i 5 dotyczących kampanii.

Jaki port domyślnie wykorzystuje połączenie HTTPS?

HTTPS domyślnie korzysta z portu 443.

Czym różni się lista mailingowa od segmentu?

Lista mailingowa to zbiór odbiorców, a segment — część odbiorców wyodrębniona według określonych kryteriów.

Jakie minimalne wersje WordPressa i PHP podano dla wtyczki FreshMail For WordPress?

Wymagane minimum to WordPress 3.0 i PHP 5.3.

Czy pole zapisu we wtyczce można skonfigurować bez wskazania listy FreshMail?

Nie. Podczas konfiguracji pola zapisu trzeba wybrać co najmniej jedną listę FreshMail.

Źródła

  1. ↑FreshMail, Dokumentacja REST API v2.0 https://freshmail.pl/wp-content/uploads/2022/01/REST_API_V1.0.34.pdf
  2. ↑IANA, Service Name and Transport Protocol Port Number Registry https://www.iana.org/assignments/service-names-port-numbers?search=https+443
  3. ↑FreshMail, Dokumentacja REST API v2.0. ([freshmail.pl](freshmail.pl https://freshmail.pl/wp-content/uploads/2020/06/REST_API_V1.0.26.pdf
  4. ↑FreshMail, Subskrybenci – zarządzanie subskrybentami https://freshmail.pl/developer-api/subskrybenci-zarzadzanie-subskrybentami/
  5. ↑FreshMail, oficjalne repozytorium klienta PHP dla API v3 — sekcja Error handling. ([github.com](github.com https://github.com/FreshMail/php-api-client
  6. ↑MDN, HTTP response status codes https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status
  7. ↑FreshMail For WordPress https://wenpai.org/plugins/freshmail-integration/
  8. ↑WpFavs, kopia opisu wtyczki FreshMail For WordPress https://wpfavs.com/single-plugin-page?slug=freshmail-integration