Ostatnio ze zdziwieniem zauważyłem, że moje ostatnie wpisy z Twittera nie pojawiają się w napisanym przeze mnie Twitter-owym boxie na głównej stronie kminek.pl. Wizyta na dev.twitter.com nie pozostawiała złudzeń, co do przyczyny takiego stanu rzeczy:
August 31, 2010 – Basic Auth has been deprecated. All applications must now use OAuth.
Do tej pory skrypt na kminek.pl pobierał co godzinę ostatnie wpisy z mojego konta na Twitterze i umieszczał je w WordPress-owej bazie jako posty w odpowiedniej kategorii. Wpisy na moim koncie nie są publiczne, dlatego ich pobranie wymaga autoryzacji. Działo się to w ten sposób:
|
Korzystam z biblioteki SimplePie, o której pisałem jakiś czas temu. Parsuje ona RSS do postaci łatwych w manipulacji z poziomu PHP obiektów/tablic. Niemniej jednak migracja Twitter-owego API na protokół OAuth sprawiła, że powyższy kod przestał działać.
W dużym skrócie OAuth to po prostu kolejny sposób autoryzacji z serwerem, za pomocą którego zewnętrzna aplikacja kliencka uzyskuje dostęp do prywatnych zasobów danego użytkownika w jakimś serwisie (w moim przypadku tymi zasobami są moje wpisy na Twitter-owym koncie) – przy czym dzieje się bez potrzeby użycia mojego loginu i hasła. Pierwszym krokiem jest zalogowanie się na Twitterze i przejście na stronę dev.twitter.com, gdzie możemy dodać nowa aplikację do naszego konta:
W polu Default Access Type określamy, czy nasza aplikacja ma mieć dostęp tylko do odczytu (Read-only), czy chcemy mieć również możliwość modyfikacji i dodawania za jej pośrednictwem danych (Read & Write). Określamy również typ naszej aplikacji (Application Type) – definiujemy, czy nasza aplikacja jest aplikacją pracująca w przeglądarce internetowej (Browser) czy jest to aplikacja wykonywalna, instalowana w systemie użytkownika (Client). Po utworzeniu aplikacji otrzymujemy do niej ‘klucze’, którymi podpisywane będą nasze requesty. Klucze znajdują się na stronie Application Details:
Będziemy potrzebowali wartości Consumer Key i Consumer Secret. Ostatnią rzeczą jest wizyta na stronie My Access Token:
Uzbrojeni w wartości:
- Consumer Key
- Consumer Secret
- Access Token
- Access Token Secret
możemy wreszcie pobrać wpisy. Należy skorzystać w tym celu z biblioteki twitteroauth, która udostępnia interfejs komunikacji z API Twitter-a za pomocą OAuth. Nowy mechanizm pobierania wpisów prezentuje się następująco:
|
Jak widać, SimplePie nie pobiera już RSS-a bezpośrednio z Twitter-a, ale dostaje go już jako string, który zwraca biblioteka twitteroauth (linia 14). Powyższy przykład jest najprostszą integracją wykorzystującą tylko jedno konto i przypisany do niego access token.
Dodaj komentarz * pola obowiązkowe