Blog (441)
Komentarze (5k)
Recenzje (0)
@wojtekadamsAlleWidget, ale gdzie on się podział? Starcie z Allegro webApi - wpis krótki

AlleWidget, ale gdzie on się podział? Starcie z Allegro webApi - wpis krótki

24.11.2013 16:55, aktualizacja: 25.11.2013 09:24

Jakiś dwa tygodnie temu zadzwonił do mnie mój przyjaciel i z przerażeniem w głosie rzekł, że z jego strony zniknął AlleWidget, który jego zdaniem bardzo pomagał w zwiększaniu sprzedaży. W związku z tym, że nie jest biegły w sprawach informatycznych poprosił mnie abym zbadał ten problem, a że ja kilka lat temu na jego stronie umieściłem owy widget to poczuwałem się do odpowiedzialności aby jemu w tym pomóc. Moje dochodzenie nie trwało zbytnio długo, aby odkryć dlaczego allegrowy gadżet zniknął z powierzchni jego strony.

489386

Na cafe.allegro.pl bardzo szybko uzyskałem odpowiedź, że serwis allewidget.pl został permanentnie wyłączony i nie będzie można już z niego korzystać (dowód tu ).

Słysząc taką odpowiedź mój znajomy załamał ręce i zaczął szlochać bełkocząc coś o stratach jakie ma z tego powodu. Nie czekając ani chwili zacząłem szukać nowego LEPSZEGO rozwiązania... no i znalazłem!

W tym momencie niebo się rozjaśniło

489390

Rozwiązanie przyszło od samego Allegro, które udostępnia webApi dzięki, któremu możemy sobie z nim porozmawiać. Wszystko oparte jest o mydlany protokół SOAP (ang. Simple Object Access Protocol), który nieźle się sprawdza na tym poziomie. Cała dokumentacja do owego interfejsu jest napisana na przyzwoitym poziomie (obligującą w przykłady zastosowania opisywanych funkcji), dlatego też mniej zaawansowany koleś (taki jak ja) może sobie bezproblemowo poradzić z wykorzystaniem api do własnych potrzeb.

Wertując kolejne strony siorbnąłem wiedzy dzięki, której mogłem napisać podobny widget na stronę przyjaciela. Jednak zanim zacząłem pisać ten mały skrypcik potrzebowałem zdobyć swój allegrowy klucz developerski. Trwało to zaledwie kilka chwil - musiałem wypełnić formularz składający się zaledwie z dwóch pól, aby po chwili cieszyć się swoim unikalnym kodem przesłanym na maila :)

489393

Przystępując do pisania okazało się że do wykonania mojego małego projektu potrzebuje skorzystać aż z dwóch funkcji:

  • doGetUserId - sprawdzenie identyfikatora użytkownika po podaniu jego nazwy
  • doGetUserItems - pobranie listy ofert (aukcji) wystawionych przez użytkownika

Z tym że użycie funkcji doGetUserId możemy pominąć jeśli znamy identyfikator allegrowicza - a łatwo jest to zrobić. Wystarczy wejść na stronę O mnie danego usera i zaczytać z adresu ostatnie cyferki - tuż po us_id=.

Zaś wracając do metody pobierającej listę przedmiotów użytkownika, wykorzystanie jej jest banalnie proste wystarczy tylko podać kilka parametrów wejściowych, a funkcja zwróci nam wszystkie informacje na temat przedmiotów allegrowicza, o którego pytaliśmy.

Wszystko wygląda mniej-więcej tak:


$soap=new SoapClient('http://webapi.allegro.pl/uploader.php?wsdl');
$webapi_key='KLUCZ WEBAPI';
$user_id=$soap->doGetUserId(1,'wojtekadams','',$webapi_key); 
$items_limit=100; //limit pobranych aukcji
$items=$soap->doGetUserItems($user_id,$webapi_key,1,0,$items_limit);
for($i=0;$i<$items['user-item-count'];$i++)
{
echo '<img src='.$items['user-item-list'][$i]->{'it-thumb-url'}.'>';
echo '<a rel="nofollow" href="http://allegro.pl/show_item.php?item='.$items['user-item-list'][$i]->
{'it-id'}.'">'.$items['user-item-list'][$i]->{'it-name'}.'</a>';
}

I teraz gdy już uzyskaliśmy potrzebne nam informacje to wypadałoby ubrać nasz widget w ładniejsze wdzianko wykorzystując np. jQuery i po chwili mamy taki o to efekt: [youtube=http://www.youtube.com/watch?v=Bh_uZtvoExw]

Kumpel zadowolony i ja także bo nauczyłem się czegoś nowego :D

Wybrane dla Ciebie
Komentarze (22)