alleREST Forum

Allegro REST API.

You are not logged in.

#1 12-08-2016 16:43:56

admin
Administrator
Registered: 21-03-2015
Posts: 14

Wpis: Logowanie do Allegro REST API

Offline

#2 14-11-2016 03:04:14

pwy
Member
Registered: 14-11-2016
Posts: 3

Re: Wpis: Logowanie do Allegro REST API

Taki bład w tokenRequest():

Forbidden - Could not verify the provided CSRF token because your session was not found.

Jakies pomysły ?

Offline

#3 14-11-2016 13:33:36

admin
Administrator
Registered: 21-03-2015
Posts: 14

Re: Wpis: Logowanie do Allegro REST API

Witam.
Za dużo niewiadomych, brak kodu.
Według komunikatu, używasz nieaktualnego identyfikatora sesji.
Musisz się ponownie zalogować i podać jeszcze raz wygenerowany Token.
Trzeba mieć oczywiście też dodaną autoryzację dla aplikacji.
Należy szukać problemu w funkcji logowania i nagłówkach jak i samej funkcji tokenRequest(), która tych danych używa.
Podane przykłady działają na 100%.

Offline

#4 24-11-2016 16:58:55

tomek
Member
Registered: 24-11-2016
Posts: 1

Re: Wpis: Logowanie do Allegro REST API

Witam, na nazwa.pl na dzień dobry takie cudeńko ;-/

nazwa.pl wrote:

Parse error: syntax error, unexpected '[' in /home/tomi/ftp/12v_pl/allegro2/rest_test.php on line 8

Cały kod żywcem skopiowany z Pana przykładu, a linia 8 to

[== PHP ==]
protected $providerSettings = [

Czy jakieś sugestie lub porady dla zielonego i ambitnego smile ?

Offline

#5 24-11-2016 17:41:10

admin
Administrator
Registered: 21-03-2015
Posts: 14

Re: Wpis: Logowanie do Allegro REST API

tomek wrote:

Czy jakieś sugestie lub porady dla zielonego i ambitnego smile ?

Proszę w panelu admin.nazwa.pl włączyć nową wersję PHP:
https://pomoc.nazwa.pl/baza-wiedzy/narz … etera-php/
lub poprawić kod.

Stary sposób tworzenia tablic:

[== PHP ==]
$tablica = array(...);

Nowy sposób tworzenia tablic:

[== PHP ==]
$tablica = [...];

Jeśli na serwerze działają już inne strony, należy uważać ze zmianą interpretera i upewnić się, że oprogramowanie będzie z nią kompatybilne.

Offline

#6 19-01-2017 15:09:04

Pawel
Member
Registered: 19-01-2017
Posts: 1

Re: Wpis: Logowanie do Allegro REST API

Czy istnieje możliwość logowania automatycznego, bez klikania w link wygenerowany przez $auth->getAuthorizationUri() ?

Jeśli link odpalę z przeglądarki, to zostaję prawidłowo przekierowany na Redirect URI. Jeśli jednak próbuję otworzyć link przez curl, to w odpowiedzi dostaje kod 302 i przekierowanie do formularza logowania Allegro.

Offline

#7 02-02-2017 19:42:03

admin
Administrator
Registered: 21-03-2015
Posts: 14

Re: Wpis: Logowanie do Allegro REST API

Pawel wrote:

Czy istnieje możliwość logowania automatycznego, bez klikania w link wygenerowany przez $auth->getAuthorizationUri() ?

Jeśli link odpalę z przeglądarki, to zostaję prawidłowo przekierowany na Redirect URI. Jeśli jednak próbuję otworzyć link przez curl, to w odpowiedzi dostaje kod 302 i przekierowanie do formularza logowania Allegro.

Mogę się domyślać, że nie jesteś zalogowany. Allegro zapewne sprawdza ciasteczka po stronie przeglądarki i tutaj ich nie znajduje.
Trzeba po prostu obsłużyć wszystkie żądania, przekierowania, ciasteczka itp.
Rozwiązania Tobie gotowego nie podam, bo nie miałem okazji tego w ten sposób testować.
Sprawdzi się to tylko przy posiadaniu loginu i hasła.
Jeśli temat zmierza w kierunku przedłużenia ważności Tokena, to jest od tego inna funkcja.

Offline

#8 24-02-2017 12:32:56

alphaccx
Member
Registered: 24-02-2017
Posts: 1

Re: Wpis: Logowanie do Allegro REST API

Mam pytanie czy da się używać REST API robiąc operację na danym koncie po stronie serwera tylko, bez logowania ręcznego do allegro? Czyli tak jak w WebAPI podając klucz oraz login + hasło.
Chcę aktualizować cenę swoich aukcji na podstawie kursu walut więc miałbym to odpalone w cronie. Tylko jak wykonać? Czyli nie robiąc logowania użytkownikiem do allegro.

Offline

#9 25-02-2017 12:00:04

admin
Administrator
Registered: 21-03-2015
Posts: 14

Re: Wpis: Logowanie do Allegro REST API

Jeśli w cronie, to trzeba skorzystać z Refresh Tokena i raz na dobę pobierać Access Token.
https://developer.allegroapi.io/auth/
Czy to się da całkowicie zautomatyzować (proces pierwszego logowania)? To pytanie pojawiające się bardzo często...
Tak jak wyżej odpisałem innej osobie, można spróbować Curlem...

Offline

#10 27-02-2017 18:45:26

pwy
Member
Registered: 14-11-2016
Posts: 3

Re: Wpis: Logowanie do Allegro REST API

admin wrote:

Witam.
Za dużo niewiadomych, brak kodu.
Według komunikatu, używasz nieaktualnego identyfikatora sesji.
Musisz się ponownie zalogować i podać jeszcze raz wygenerowany Token.
Trzeba mieć oczywiście też dodaną autoryzację dla aplikacji.
Należy szukać problemu w funkcji logowania i nagłówkach jak i samej funkcji tokenRequest(), która tych danych używa.
Podane przykłady działają na 100%.

Kod działa.
Nie działał trochę przerobiony kod zaimplementowany w Magento Commerce. Zadziałał na osobnym pliku .php.
Adres wywoływany w stylu:  DOMENA/index.php/controller/akcja/parametry nie działa, DOMENA/osobny-plik.php  działa.
Nie znam przyczyny, wszystko zdebugowałem, wszystkie parametry, wartości w trakcie wykonywania - wszystko to samo, sprawdziłem też dane requestów i nagłówki odpowiedzi w przeglądarce.
Podejrzewam, że aplikacja Magento robi coś o czym nie wiem lub problem leży po stronie allegro i interpretowania adresu URL, z którego jest wywoływane logowanie.

Dodatkowo refresh token i command działają poprawnie (wywoływane z Magento). Wychodzi na to że nie działa jedynie https://ssl.allegro.pl/auth/oauth/authorize

Jak dojdę co to było to napiszę tutaj.

Offline

#11 27-02-2017 18:51:40

pwy
Member
Registered: 14-11-2016
Posts: 3

Re: Wpis: Logowanie do Allegro REST API

alphaccx wrote:

Mam pytanie czy da się używać REST API robiąc operację na danym koncie po stronie serwera tylko, bez logowania ręcznego do allegro? Czyli tak jak w WebAPI podając klucz oraz login + hasło.
Chcę aktualizować cenę swoich aukcji na podstawie kursu walut więc miałbym to odpalone w cronie. Tylko jak wykonać? Czyli nie robiąc logowania użytkownikiem do allegro.

Skorzystać z refresh token: https://developer.allegroapi.io/auth/

Ja to robię tak, że przed wywołaniem właściwej metody API (change-price-commands) porównuję datę ważności access tokena z aktualną datą/czasem. Jeśli jest mniejsza, to wywołuję refresh token i przez kolejne 12h działa.
Zapisuję też w bazie czas ważności refresh tokena i 2 tygodnie przed upływem czasu ważności wysyłam mailem informację, że trzeba się zautoryzować na nowo.

Zamotali strasznie, ale da się to wszystko zrobić.
Niestety co 365dni trzeba klikać, aby uzyskać autoryzację, co jest dość upierdliwe dla powtarzających się procesów. Nie można uruchomić i zapomnieć wink

Offline

#12 12-03-2017 18:40:49

test12
Member
Registered: 12-03-2017
Posts: 1

Re: Wpis: Logowanie do Allegro REST API

Dlaczego zostaje rzucony mi wyjątek ?
throw new Exception('Unrecognized error');
tzn rozumiem czemu, bo result zwraca false, czyli curl sie nie wykonał.  Pytanie czemu? wszystkie dane są prawidłowe.

Rozwiązane po przez ustawienie  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); bo problem był w SSL, ale z drugiej strony wątpię że to rozwiązanie jest dobre..

drugi problem.

Jak się tym posługiwać? udało mi się niby dobrze zautoryzować, tyle, że odświeżenie strony kończy się błędem autoryzacji.

Last edited by test12 (12-03-2017 19:35:38)

Offline

#13 12-04-2017 09:01:39

Jooj
Member
Registered: 12-04-2017
Posts: 2

Re: Wpis: Logowanie do Allegro REST API

Witam, na nazwa.pl na dzień dobry takie cudeńko

Offline

#14 01-06-2017 14:57:43

darocz
Member
Registered: 01-06-2017
Posts: 1

Re: Wpis: Logowanie do Allegro REST API

Witam
Mam pytanie odnośnie adresu powrotnego. W jaki sposób podać adres powrotny aby uwzględniał zmienne sesyjne (token)? Użytkownik zalogowany do aplikacji wykonuje logowanie (połączenie) aplikacji z allegro. Niestety w adresie powrotnym "wycina" zmienną sesyjną token.

Offline

#15 29-11-2018 22:53:03

krsi86k
Member
Registered: 29-11-2018
Posts: 1

Re: Wpis: Logowanie do Allegro REST API

pwy wrote:
alphaccx wrote:

Mam pytanie czy da się używać REST API robiąc operację na danym koncie po stronie serwera tylko, bez logowania ręcznego do allegro? Czyli tak jak w WebAPI podając klucz oraz login + hasło.
Chcę aktualizować cenę swoich aukcji na podstawie kursu walut więc miałbym to odpalone w cronie. Tylko jak wykonać? Czyli nie robiąc logowania użytkownikiem do allegro.

Skorzystać z refresh token:
Ja to robię tak, że przed wywołaniem właściwej metody API (change-price-commands) porównuję datę ważności access tokena z aktualną datą/czasem. Jeśli jest mniejsza, to wywołuję refresh token i przez kolejne 12h działa.
Zapisuję też w bazie czas ważności refresh tokena i 2 tygodnie przed upływem czasu ważności wysyłam mailem informację, że trzeba się zautoryzować na nowo.

Zamotali strasznie, ale da się to wszystko zrobić.
Niestety co 365dni trzeba klikać, aby uzyskać autoryzację, co jest dość upierdliwe dla powtarzających się procesów. Nie można uruchomić i zapomnieć wink

Czy mógłbyś wrzucić swój kod odświeżania tokena?

Offline

Board footer

Powered by FluxBB