allegro / allegro-api

Issue tracker and wiki for Allegro REST API
https://developer.allegro.pl/
217 stars 39 forks source link

Status 403 when request GET /shipment-management/delivery-services #8577

Open TarnJul opened 8 months ago

TarnJul commented 8 months ago

Hello. "userMessage": "No access to the specified resource."

How does get access? Capture

MaciejFrackowiak commented 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.

FishBeat commented 8 months ago

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?

MaciejFrackowiak commented 8 months ago

@FishBeat Musisz ponownie zautoryzować aplikację, czyli wygenerować nowy token, który będzie uwzględniał dodane scope'y.

FishBeat commented 8 months ago

Czyli w skrócie należało wykonać ponowne powiązanie aplikacji z kontami allegro - dziękuję już działa.

MateuszsuetaM commented 8 months ago

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.

MaciejFrackowiak commented 8 months ago

@MateuszsuetaM Proszę podaj trace-id wywołania, dla którego otrzymałeś komunikat błędu.

MateuszsuetaM commented 8 months ago

@MaciejFrackowiak
Trace id poniżej, zapytania wysyłałem z postmana bc8807810eb0881

MaciejFrackowiak commented 8 months ago

@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.

MateuszsuetaM commented 8 months ago

Ok, wcześniej próbowałem też ze wskazanym nagłówkiem oraz UUID - teraz jest już inna odpowiedź od API. Dziękuję i pozdrawiam :)

TarnJul commented 7 months ago

image

Why won't want to change the application?

MaciejFrackowiak commented 7 months ago

@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.

TarnJul commented 7 months ago

image

The request response was received, but credentialsId is null

MaciejFrackowiak commented 7 months ago

@TarnJul "credentialsId" is a field dedicated to handling own contract - please, check our tutorial.

TarnJul commented 7 months ago

I see thanks

TarnJul commented 7 months ago

If I understood correctly, the credentialsId is generated on your side?

MaciejFrackowiak commented 7 months ago

@TarnJul Yes, "credentialsId" is generated by us based on data which you provided as an own contract.

TarnJul commented 7 months ago

image

When I created, the credentialsId was not generated

MaciejFrackowiak commented 7 months ago

Delivery method "c3066682-97a3-42fe-9eb5-3beeccab840c" is owned by Allegro, so there will not be an ID for own contract.

stale[bot] commented 7 months ago

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.

WGRINGO commented 5 months ago

Testuję na sandboxie - u mnie nadałem uprawnienia: image

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 image allegro:api:shipments:read ani allegro:api:shipments:write

WGRINGO commented 5 months ago

Czy coś już wiadomo jak to rozwiązać ?

MaciejFrackowiak commented 5 months ago

@WGRINGO Proszę podaj trace-id swojego wywołania.

WGRINGO commented 5 months ago

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."}]}

MaciejFrackowiak commented 5 months ago

@WGRINGO W tokenie, który wykorzystywałeś do wykonania requestu brakuje scope "allegro:api:shipments:write".

WGRINGO commented 5 months ago

No ale w tym problem, że nadałem tego scopa - zobacz mój pierwszy zrzut ekranu. Patrząc przez panel www image jest nadany a w tokenie go nie ma mimo że generowałem go na nowo kilka razy i nie wiem dlaczego.

MaciejFrackowiak commented 5 months ago

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.

WGRINGO commented 5 months ago

A gdzie to mogę zrobić dokładnie ? W panelu www ?

MaciejFrackowiak commented 5 months ago

W interfejsie aplikacji, z której korzystasz.

WGRINGO commented 5 months ago

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 image Co potwierdzam, generuje się całkiem nowy token ale nowy token dlaej nie zawiera tego scopa "allegro:api:shipments:write" Co robię nie tak ?

MaciejFrackowiak commented 5 months ago

To okno tylko potwierdza poprawny wybór konta, nie pokazuje zaś uprawnień aplikacji - dokładnie krok 3 z tutoriala. Najprościej będzie jak usuniesz wspomnianą aplikację z listy, a następnie ponownie przejdziesz proces jej połączenia z Twoim kontem.

WGRINGO commented 5 months ago

Zrobiłem tak. Powiązałem na nowo aplikację. image Niestety w tokenie dalej nie ma tego scopa więc dalej mam ten sam błąd 403.

MaciejFrackowiak commented 5 months ago

Wymieniona aplikacja na Sandbox nie ma w swoich uprawnieniach dodanego scope "allegro:api:shipments:write".

WGRINGO commented 5 months ago

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.

MaciejFrackowiak commented 5 months ago

@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.

stale[bot] commented 5 months ago

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.

maciejgorc commented 4 months ago

Próbuję dodać wspomniane uprawnienia, jednak po naciśnięciu "Tak, zapisz" okienko znika, a zmiana się nie zapisuje. image Patrząc w źródło strony w devtools widzę coś takiego: image nie wygląda to na produkcyjną wersję :/

MaciejFrackowiak commented 4 months ago

@maciejgorc Przed momentem testowo edytowałem uprawnienia bez żadnych przeszkód. Czy przepisałeś nazwę aplikacji w polu potwierdzającym operację?

stale[bot] commented 3 months ago

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.