Closed PaVeN0 closed 4 years ago
Tak, jest to możliwe. Sposób, który opisałeś jest prawidłowy i pozwoli na operacje tego typu. Ten typ autoryzacji opisaliśmy w naszym poradniku. Wątek generowania tokena np. w PHP, przewinął się w poniższych wątkach:
Być może wśród nich znajdziesz wskazówki, które rozwieją Twoje wątpliwości.
Dokumentacja ma dużo wątków które są niejasne lub napisane aby były.. Marnujemy czas na zrozumienie jak działa połączenie w momencie gdy osoby odpowiedzialne za API wrzucają linki do dokumentacji. Jakoś ogarnąłem przekierowanie robie testowo po linku wpisując go w przeglądarkę.
Czemu podczas próby pobrania ofert "/sale/offers" wyrzuca mi błąd "AccessDenied"? Czymuszę podać dodatkowe parametry?
array(1) { ["errors"]=> array(1) { [0]=> array(5) { ["code"]=> string(12) "AccessDenied" ["message"]=> string(16) "Access is denied" ["details"]=> NULL ["path"]=> NULL ["userMessage"]=> string(36) "No access to the specified resource." } } }
Już jest wszystko OK. Faktycznie błąd był z autoryzacją "code". Dziękuję.
Pozdrawiam, Bartłomiej Leśniewski
e-mail: @.***
śr., 24 kwi 2024 o 12:44 PrzemyslawLukanowski @.***> napisał(a):
@LesiuNOL https://github.com/LesiuNOL Upewnij się, że posiadasz token wygenerowany w ramach code https://developer.allegro.pl/tutorials/uwierzytelnianie-i-autoryzacja-zlq9e75GdIR#authorization-code-flow lub device https://developer.allegro.pl/tutorials/uwierzytelnianie-i-autoryzacja-zlq9e75GdIR#device-flow flow i aplikacja posiada zakres allegro:api:sale:offers:read. Jeśli wszystko wykonałeś poprawnie, ale mimo to zwracamy nadal błąd, podaj proszę przykładowe trace-id.
— Reply to this email directly, view it on GitHub https://github.com/allegro/allegro-api/issues/3175#issuecomment-2074655104, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALKWG6CK6BKB4SIU72BBSITY66EIZAVCNFSM4MZSOV62U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMBXGQ3DKNJRGA2A . You are receiving this because you were mentioned.Message ID: @.***>
Pobierając dane o wystawionych ofertach za pomocą "/sale/offers?limit=1000&offset=0&publication.status=ACTIVE" chciałbym uzyskać numer ISBN (produkty są w kategorii książki). W jaki sposób mogę pobrać dodatkowe informacje oferty, czy trzeba dołączyć jakiś dodatkowy atrybut przy pobieraniu danych przez API?
Znając ID oferty, musisz pobrać jej pełne dane za pomocą GET /sale/product-offers/{offerID}. Informację o parametrach zwracamy w sekcji parameters
, a ID ISBN to 245669.
Dziękuję za odpowiedź, udało mi się wczoraj do tego dotrzeć. :) Jednak zastanawia mnie kolejna rzecz. Token jest jednorazowy. Gdy wywołam endpoint "/sale/offers", aby pobrać do tablicy ID ofert to token traci ważność, jednak w tym samym skrypcie chciałbym pobrać informację o ISBN za pomocą endpoint "/sale/product-offers/{offer_id}". Czy jest jakaś opcja, aby uzyskać nowy token w locie, bądź przedłużyć ważność/odświeżyć obecny?
Pozdrawiam, Bartłomiej Leśniewski
tel. 733-501-781 e-mail: @.***
czw., 25 kwi 2024 o 07:24 PrzemyslawLukanowski @.***> napisał(a):
Znając ID oferty, musisz pobrać jej pełne dane za pomocą GET /sale/product-offers/{offerID} https://developer.allegro.pl/documentation#operation/getProductOffer. Informację o parametrach zwracamy w sekcji parameters, a ID ISBN to 245669.
— Reply to this email directly, view it on GitHub https://github.com/allegro/allegro-api/issues/3175#issuecomment-2076389320, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALKWG6HXV7HJFNT2FUTZXETY7CHSBAVCNFSM4MZSOV62U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMBXGYZTQOJTGIYA . You are receiving this because you were mentioned.Message ID: @.***>
Access token jest ważny przez 12 godzin, w tym okresie możesz wykonywać za jego pomocą wiele operacji do naszych zasobów. Przed upływem tego czasu możesz za pomocą refresh tokena (który otrzymałeś wraz z access tokenem) wygenerować nową parę access token (który jest ważny kolejne 12 godzin) oraz refresh token (którego użyjesz, aby ponownie wygenerować nową parę). Więcej na ten temat przeczytasz w tym punkcie naszego poradnika.
Kod, który przekazujesz w parametrze "code", jest ważny 10 sekund oraz jest jednorazowego użytku - wygląda na to, że ten czas minął lub kod został już wykorzystany wcześniej.
Co prawda usunąłem już to pytanie (nie widziałem odpowiedzi), bo sobie poradziłem. Dziwnym trafem przeniosłem funkcję do klasy PHP i po wywołaniu wszystko działa. Może dochodziły jakieś błędne parametry po stronie WordPress. Nie wiem. :)
Dziękuję za odpowiedź, cieszę się, że udało się rozwiązać problem :)
Dzień dobry, zajmuje się obecnie wdrożeniem funkcji która pozwoli na pobranie przez mojego klienta, który sprzedaje towary na allegro, listy zamówień które zostały sprzedane z ostatniego okresu. Z dokumentacji wiem że jest endpoint który pozwala na wyjęcie takich danych jednak mam zwrotkę 403 próbując pobrać te dane po autoryzacji jako Client_credentials. Czy jest możliwość wyjęcia zamówień z konta które jest autoryzowane w API?
Dodatkowo próbowałem też opcji z Authorization Code tylko z tego co czytam musze najpierw przygotować przycisk w mojej aplikacji który wyśle informacje do Allegro po czym otrzymam "code" który użyje przy autoryzacji po której otrzymam token i ten token będę mógł użyć do wyjęcia danych o zamówieniach. Dobrze to rozumiem?
Trochę dużo zamieszania z tym. Nie da się tego zrobić inaczej? Prosiłbym o przykład w kodzie na połączenie bo dokumentacje przejrzałem już kilka razy i nie za bardzo wiem jak pójść dalej...