Open TarnJul opened 8 months ago
Shipment management resources require two scopes: "allegro:api:shipments:read" and "allegro:api:shipments:write". It looks like your application does not have them - you should update its settings in the Managing the Allegro applications tab. Then, you have to obtain a new token.
Mam ten sam problem - wczoraj zaktualizowałem ustawienia "allegro:api:shipments:read" and "allegro:api:shipments:write" - niestety nic to nie dało.
" you have to obtain a new token" - chodzi o nowy CLIENT SECRET?
@FishBeat Musisz ponownie zautoryzować aplikację, czyli wygenerować nowy token, który będzie uwzględniał dodane scope'y.
Czyli w skrócie należało wykonać ponowne powiązanie aplikacji z kontami allegro - dziękuję już działa.
W moim przypadku wygenerowanie nowego tokenu nic nie daje - dostaję błąd jak poniżej.
Próbowałem również zarejestrować jako nową aplikację typu (device) uwzględniając uprawnienia "allegro:api:shipments:read" oraz "allegro:api:shipments:write" - również błąd:
{ "errors": [ { "code": "AccessDenied", "message": "Access is denied", "details": null, "path": null, "userMessage": "No access to the specified resource." } ] }
Odczytanie innych zasobów działa, np. https://api.allegro.pl/order/checkout-forms
zwraca komplet danych.
@FishBeat Musisz ponownie zautoryzować aplikację, czyli wygenerować nowy token, który będzie uwzględniał dodane scope'y.
@MateuszsuetaM Proszę podaj trace-id wywołania, dla którego otrzymałeś komunikat błędu.
@MaciejFrackowiak
Trace id poniżej, zapytania wysyłałem z postmana
bc8807810eb0881
@MateuszsuetaM Sprawdź proszę nagłówek Accept, który przekazujesz - powinno to być "application/vnd.allegro.public.v1+json". Po drugie, identyfikator, który przekazałeś jako "shipmentId" nie jest prawidłowy - ma on postać UUID, a nie zwykłej liczby.
Ok, wcześniej próbowałem też ze wskazanym nagłówkiem oraz UUID - teraz jest już inna odpowiedź od API. Dziękuję i pozdrawiam :)
Why won't want to change the application?
@TarnJul You should provide the application name in the form which we present - as we see on the screenshot both names are not the same now.
The request response was received, but credentialsId is null
@TarnJul "credentialsId" is a field dedicated to handling own contract - please, check our tutorial.
I see thanks
If I understood correctly, the credentialsId is generated on your side?
@TarnJul Yes, "credentialsId" is generated by us based on data which you provided as an own contract.
When I created, the credentialsId was not generated
Delivery method "c3066682-97a3-42fe-9eb5-3beeccab840c" is owned by Allegro, so there will not be an ID for own contract.
W tym wątku nie pojawiła się żadna nowa odpowiedź w ciągu 7 dni, dlatego automatycznie oznaczamy go jako przeterminowany. Jeśli w ciągu kolejnych 7 dni nie pojawi się żadna odpowiedź, wątek zostanie zamknięty. Dziękujemy za zaangażowanie w dyskusję i zachęcamy Cię do wypełnienia ankiety dotyczącej naszego wsparcia na forum.
There was no new reply in this thread within 7 days, therefore, we automatically marked it as expired. If no response is received within the next 7 days, this thread will be closed. Thank you for engaging in the discussion. We encourage you to complete our forum support survey.
Testuję na sandboxie - u mnie nadałem uprawnienia:
Generowałem token kilka razy, niestety dalej dostaję forbidden 403 wywołując: https://api.allegro.pl/shipment-management/delivery-services Dostaję: 403 {"errors":[{"code":"AccessDenied","message":"Access is denied","details":null,"path":null,"userMessage":"Brak dostępu do danego zasobu."}]}.
A dekodując token w jwt nie widzę tam allegro:api:shipments:read ani allegro:api:shipments:write
Czy coś już wiadomo jak to rozwiązać ?
@WGRINGO Proszę podaj trace-id swojego wywołania.
GET /shipment-management/delivery-services HTTP/1.1 Content-Encoding: utf-8 Content-Type: application/vnd.allegro.public.v1+json Accept-Language: PL Authorization: Bearer ***** Host: api.allegro.pl.allegrosandbox.pl Accept: application/vnd.allegro.public.v1+json;charset=UTF-8 Accept-Encoding: identity User-Agent: Mozilla/3.0 (compatible; Indy Library)
HTTP/1.1 403 Forbidden trace-id: 1b195fa8747f608 content-type: application/json; charset=utf-8 content-length: 140 date: Thu, 16 May 2024 07:04:58 GMT strict-transport-security: max-age=15552000
{"errors":[{"code":"AccessDenied","message":"Access is denied","details":null,"path":null,"userMessage":"Brak dost??pu do danego zasobu."}]}
@WGRINGO W tokenie, który wykorzystywałeś do wykonania requestu brakuje scope "allegro:api:shipments:write".
No ale w tym problem, że nadałem tego scopa - zobacz mój pierwszy zrzut ekranu. Patrząc przez panel www jest nadany a w tokenie go nie ma mimo że generowałem go na nowo kilka razy i nie wiem dlaczego.
Ustawiłeś wartość tylko w ustawieniach samej aplikacji, natomiast request wywoływany jest bez niego. Musisz ponownie autoryzować aplikację kontem danego użytkownika, ponieważ musi on wyrazić zgodę na nowe uprawnienie. Samo odświeżanie dotychczasowego tokenu nie wprowadzi nowego scope'a.
A gdzie to mogę zrobić dokładnie ? W panelu www ?
W interfejsie aplikacji, z której korzystasz.
Nie rozumiem - w aplikacji w której korzystam czyli e-konektor mogę wygenerować nowy token, poprzez wywołanie https://allegro.pl.allegrosandbox.pl/auth/oauth/authorize?response_type=code&client_id=b26f***803b&redirect_uri=https://proman-software.com/&prompt=confirm Co prowadzi do Co potwierdzam, generuje się całkiem nowy token ale nowy token dlaej nie zawiera tego scopa "allegro:api:shipments:write" Co robię nie tak ?
Zrobiłem tak. Powiązałem na nowo aplikację. Niestety w tokenie dalej nie ma tego scopa więc dalej mam ten sam błąd 403.
Wymieniona aplikacja na Sandbox nie ma w swoich uprawnieniach dodanego scope "allegro:api:shipments:write".
Ok już wszystko jasne! Błędy po mojej stronie były dwa : Po pierwsze to trzeba uprawnienia nadać osobno w releasie i osobno w sandboxie: https://apps.developer.allegro.pl/ https://apps.developer.allegro.pl.allegrosandbox.pl/ I dopiero wtedy usunąć powiązane aplikacje, również tu i tu. https://allegro.pl/moje-allegro/moje-konto/powiazane-aplikacje https://allegro.pl.allegrosandbox.pl/moje-allegro/moje-konto/powiazane-aplikacje
Dziękuję za pomoc.
@WGRINGO Fajnie, że już wszystko gra ;) Mała wskazówka na przyszłość - warto rozróżnić nazwy aplikacji (produkcja/Sandbox), wówczas praktycznie od razu można się zorientować, która aplikacja wymaga jeszcze edycji.
W tym wątku nie pojawiła się żadna nowa odpowiedź w ciągu 7 dni, dlatego automatycznie oznaczamy go jako przeterminowany. Jeśli w ciągu kolejnych 7 dni nie pojawi się żadna odpowiedź, wątek zostanie zamknięty. Dziękujemy za zaangażowanie w dyskusję i zachęcamy Cię do wypełnienia ankiety dotyczącej naszego wsparcia na forum.
There was no new reply in this thread within 7 days, therefore, we automatically marked it as expired. If no response is received within the next 7 days, this thread will be closed. Thank you for engaging in the discussion. We encourage you to complete our forum support survey.
Próbuję dodać wspomniane uprawnienia, jednak po naciśnięciu "Tak, zapisz" okienko znika, a zmiana się nie zapisuje. Patrząc w źródło strony w devtools widzę coś takiego: nie wygląda to na produkcyjną wersję :/
@maciejgorc Przed momentem testowo edytowałem uprawnienia bez żadnych przeszkód. Czy przepisałeś nazwę aplikacji w polu potwierdzającym operację?
W tym wątku nie pojawiła się żadna nowa odpowiedź w ciągu 7 dni, dlatego automatycznie oznaczamy go jako przeterminowany. Jeśli w ciągu kolejnych 7 dni nie pojawi się żadna odpowiedź, wątek zostanie zamknięty. Dziękujemy za zaangażowanie w dyskusję i zachęcamy Cię do wypełnienia ankiety dotyczącej naszego wsparcia na forum.
There was no new reply in this thread within 7 days, therefore, we automatically marked it as expired. If no response is received within the next 7 days, this thread will be closed. Thank you for engaging in the discussion. We encourage you to complete our forum support survey.
Hello. "userMessage": "No access to the specified resource."
How does get access?