allego simple login (PL)
Dokumentacja oraz zbiór skryptów perl5/python3/PHP, które mają w założeniu pomagać w zalogowaniu się do allegro. Aktualnie skupiam się na RESP API, które lada moment ma zastąpić całkowicie WEBApi. Skrypty są przeważnie polskojęzyczne, chociaż w ramach wolnego czasu możliwe jest przetłumaczenie.
Repozytorium może być przydatne, ponieważ Allegro lubi się zmieniać. Coś co działało kiedyś, to dzisiaj już nie działa. Zmiany na Allegro pojawiają się często.
Jeżeli więc pojawi się jakaś zmiana dotycząca procesu logowania, to w tym repozytorium powinna zostać szybko zaimplementowana. Całe logowanie możliwe jest do przeprowadzenia "po stronie" desktopu (aplikacja biurkowa), ale również po stronie serwera (back end). Skrypty piszę z perspektywy desktopa na Linuxie (laptopa).
W skrócie: proste i działające logowanie przy użyciu perl5/python3
- podstawowe narzędzia unixowe (grep, curl, tzw. coreutils; cat, awk, mkdir)
- python3: requests, json, sys i argv, http.server, webbrowser
- PERL5: póki co to tylko Perl Core, moduł JSON
- moduł pythona3 webbrowser wymaga działającej przeglądarki internetowej, np. Google Chrome (aby przejść przez cały proces autoryzacji)
- (opcjonalnie) dla skryptu do WebAPI : PHP z obsługą SOAP
Jeżeli repo będzie się rozrastać, a proces komplikować, to zależności również.
Całość jest ściśle zgodna z oficjalną dokumentacją:
Kody dla aplikacji wygenerujemy i sprawdzimy tutaj:
- SANDBOX (testy): https://apps.developer.allegro.pl.allegrosandbox.pl/
- PRODUKCJA: https://apps.developer.allegro.pl/
Plik ten znajduje się domyślnie w folderze z aplikacją jako: ./.alsi_conf_file
. Zawiera dwa podstawowe prefixy: sandbox_
oraz produkcja_
. Kody, które trzeba wpisać do pliku to:
- client_id jest zgodny z kolumną ze strony z rejestracją aplikacji: Client ID / klucz WebAPI
- client_secret to Client Secret
- redirect_uri to Adresy Przekierowań
Tutaj należy wpisaćhttp://localhost:8000
(zarówno w pliku konfiguracyjnym jak i na stronie)
W trakcie pierwszego uruchomienia allsi-login.pl
pojawi się folder cache
w którym będą znajdowały się pobrane dane dotyczące logowania.
Główny skrypt perlowy do zarządzania loginem na allegro.
Dwa wymagane parametry:
PARAMETR 1 : położenie pliku konfiguracynnego:
- dir : wtedy plik konfiguracyjny będzie odczytywany z folderu lokalnego, jako
./.allsi_conf_file
- pełna ścieżka unixowa, np.
/var/tmp/moj_plik_konfiguracyjny.txt
PARAMETR 2 : określenie środowiska:
- sandbox : środowisko testowe, pobranie danych do środowiska testowa z pliku konfiguracyjnego
- produkcja : zalogowanie się na główne allegro...
Główny output programu to ./cache/allsi_access-token-12godz.json
: jest to plik json ze zdalnie uzyskanymi kodami dostępu, jest ważny przez 12 godzin i może zostać użyty do dalszych requestów. Drugim plikiem jest ./cache/allsi_access-token-12godz.txt
- jest to czysty plik tekstowy z samym access tokenem (może więc łatwo zostać wczytany w innym skrypcie).
Przed jakimkolwiek działaniem, należy uzupełnić plik konfiguracyjny. Będzie on podawany w pierwszym parametrze. Wywołanie jest zawsze z dwoma parametrami (oddzielone 1 spacją):
./allsi-login.pl dir sandbox
./allsi-login.pl /home/lucyna/allsi-plik.konfiguracyjny.txt produkcja
./allsi-login.pl $HOME/Documents/.allsi-plik-konf.txt sandbox
W repozytorium znajduje się również dodatkowy skrypt PHP : WebAPI-produkcja-login.php
Aby skrypt zadziałał, musi być włączona obsługa SOAP w PHP. Można to sprawdzić np. przez:
php -i | grep -i soap
Przed wywołaniem, w liniach 13-15 należy uzupełnić dane do logowania. Np.:
define('ALLEGRO_LOGIN', '1970janusz987');
define('ALLEGRO_PASSWORD', 'supertajne123');
define('ALLEGRO_KEY', '43IKLUGHE3RKLJTSBADT89032453');
Wywołanie odbybywa się bez parametrów, czyli ./WebAPI-produkcja-login.php
Wynik to ./cache/identyfikator_sesji
: może on zostać użyty do dalszych requestów. WebAPI jednak będzie wygaszane, a więc repozytorium w tym zakresie nie będzie rozwijane.
Zachęcam wszystkich do współpracy:
- proszę zrobić to przez pull requesta: clonujemy repo, robimy nowy branch, a później PR
- jakiekolwiek usprawnienia, lepsza dokumentacja, nowe języki, czy też pomysły -> wszystko się przyda
UWAGA!
Przed jakimkolwiek publicznym pull requestem, proszę sprawdzić .gitignore
- aby znajdował się w nim folder cache
. Proszę również pilnować, aby nie upubliczniać swojego pliku konfiguracyjnego!
Można więc dodać do .gitignore
:
.allsi_conf_file