Chodźmy tutaj krok po kroku. Wygląda na to, że próbujesz użyć OAuth tylko do uwierzytelnienia, ale zanim będziesz mógł to zrobić, musisz uzyskać token dostępu, który będzie używany do uwierzytelnienia podczas wykonywania wywołań interfejsu API.
Ponieważ używa to OAuth w wersji 1, aby uzyskać token dostępu , wykonaj następujące czynności:
- Najpierw skonfiguruj aplikację, zadzwoń do witryny, aby uzyskać token żądania (poświadczenia tymczasowe) przy użyciu identyfikatora klienta i klucza tajnego aplikacji
- Po drugie, zadzwoń do witryny w celu autoryzacji aplikacji za pomocą tokena żądania od pierwszego kroku (w kierunku użytkownika, patrz poniżej).
- Po trzecie, po zakończeniu autoryzacji wywołujesz witrynę, aby uzyskać token dostępu (teraz, gdy aplikacja została autoryzowana)
Polecam korzystanie z Listonosza w pierwszych kilku krokach, ponieważ trzeba je wykonać tylko raz. Postman zajmie się także generowaniem timestamp
, nonce
a oauth signature
więc jeśli nie korzystasz z biblioteki OAuth, powinieneś bezwzględnie użyć Postmana. Po uzyskaniu tokena dostępu możesz wykonywać połączenia przez CURL bez żadnych bibliotek.
https://www.getpostman.com/
Pierwszy krok (aplikacja instalacyjna)
Zainstaluj wtyczkę WP OAuth 1, aktywuj, a następnie przejdź do pozycji menu w obszarze Użytkownicy> Aplikacje . Dodaj nową aplikację, wpisz nazwę i opis. W przypadku wywołania zwrotnego adres URL przekierowujący użytkownika (po autoryzacji) lub oop
przepływ pozapasmowy, który przekieruje na wewnętrzną stronę wyświetlającą token weryfikacyjny (zamiast przekierowywania).
https://github.com/WP-API/OAuth1/blob/master/docs/basics/Registering.md
Aby przejść do drugiego kroku, należy wykonać połączenie z witryną, używając identyfikatora klienta i tajnego klucza klienta z utworzonej aplikacji, aby uzyskać tymczasowe poświadczenia (token żądania).
Otwórz Listonosza, utwórz nowe połączenie http://website.com/oauth1/request
, kliknij kartę Autoryzacja, wybierz z menu rozwijanego OAuth 1.0, wprowadź klucz klienta, klucz tajny klienta, ustaw metodę podpisu na HMAC-SHA1
, włącz dodawanie parametrów do nagłówka, koduj podpis , a następnie kliknij Żądanie aktualizacji
Listonosz automatycznie wygeneruje dla Ciebie podpis, kod jednorazowy i znacznik czasu i doda je do nagłówka (możesz wyświetlić w zakładce Nagłówki).
Kliknij Wyślij, a otrzymasz odpowiedź zawierającą oauth_token
i oauth_token_secret
:
Wartości te zostaną wykorzystane w następnym kroku do autoryzacji aplikacji na koncie użytkownika WordPress.
Drugi krok (autoryzacja aplikacji)
Krok autoryzacji należy wykonać tylko raz, ten krok jest skierowany do użytkownika i jest znany wszystkim. Ten krok jest wymagany, ponieważ używasz OAuth1, a aplikacja musi być powiązana z kontem użytkownika WordPress. Pomyśl o tym, kiedy strona pozwala zalogować się za pomocą Facebooka ... przekierowują cię do Facebooka, gdzie się logujesz i kliknij „Autoryzuj” ... to trzeba zrobić, tylko za pośrednictwem witryny WordPress.
Zalecam użycie przeglądarki internetowej do tego kroku, ponieważ możesz łatwo ustawić zmienne w adresie URL, a to zapewnia stronę „Autoryzuj” do autoryzacji aplikacji.
Otwórz przeglądarkę internetową i wpisz adres URL swojej witryny:
http://website.com/oauth1/authorize
Teraz dodaj do tego adresu URL oauth_consumer_key
(identyfikator klienta) oauth_token
i oauth_token_secret
(z poprzedniego kroku). W moim przykładzie jest to pełny adres URL:
http://website.com/oauth1/authorize?oauth_consumer_key=TUPFNj1ZTd8u&oauth_token=J98cN81p01aqSdFd9rjkHZWI&oauth_token_secret=RkrMhw8YzXQljyh99BrNHmP7phryUvZgVObpmJtos3QExG1O
Po kliknięciu Autoryzuj pojawi się kolejny ekran z tokenem weryfikacyjnym. W moim przykładzie jest to zwrócony token weryfikacyjnyE0JnxjjYxc32fMr2AF0uWsZm
Trzeci krok (zdobądź token dostępu)
Po autoryzacji aplikacji musimy wykonać ostatnie połączenie, aby uzyskać token autoryzacji, który będzie używany do wykonywania wszystkich wywołań interfejsu API. Podobnie jak w pierwszym kroku zamierzam użyć Postmana (ponieważ wymagany jest podpis HMAC-SHA1) i dzięki temu 100 razy łatwiej jest wykonać te kroki.
Ponownie otwórz Listonosza i zmień adres URL na http://website.com/oauth1/access
Pamiętaj, aby dodać Token i Token Secret (wartości z pierwszego kroku), a następnie kliknij Params, aby wyświetlić pola pod adresem URL. Po lewej wpisz oauth_verifier, a po prawej wprowadź kod z drugiego kroku, token weryfikacyjny
Upewnij się, że kliknąłeś Żądanie aktualizacji, a następnie kliknij Wyślij, a powinieneś otrzymać odpowiedź z powrotem oauth_token
i oauth_token_secret
... to jest to, czego potrzebujesz, aby wykonywać połączenia API! Odrzuć oryginalne z kroku 1, zapisz te w swoim kodzie lub w innym bezpiecznym miejscu.
Następnie możesz wykonać wywołanie interfejsu API do swojej witryny, ustawiając nagłówki za pomocą zwróconego tokena i tajnego tokena.
Możesz przekazać to na wiele sposobów, poprzez nagłówek autoryzacji, w parametrach GET lub POST (jeśli jest zakodowany jako application / x-www-form-urlencoded). Pamiętaj, że MUSISZ przekazać podpis, znacznik czasu i nonce. Nie zdawałem sobie sprawy, jak długo zajmie mi ta odpowiedź, więc zaktualizuję to jutro, podając przykład zrobienia tego z twoim kodem.
Zdecydowanie zalecamy zainstalowanie dziennika Rest API, abyś mógł przeglądać dziennik wywołań API oraz zobaczyć, co zostało wysłane, zwrócone itp. Pomoże to w ogromnym debugowaniu.
https://github.com/petenelson/wp-rest-api-log