OAuth a potřeba veřejné IP adresy

Re:OAuth a potřeba veřejné IP adresy
« Odpověď #30 kdy: 12. 04. 2024, 13:21:37 »
... a davate tam to client_id a client_secret z toho user menu a ne z auth code flow menu, ze jo ?

Citace
Before you start go to your Fakturoid account and download your Client ID and Client Secret from your user screen Settings → User account.

pokud jo, taak podporaa :)


Re:OAuth a potřeba veřejné IP adresy
« Odpověď #31 kdy: 12. 04. 2024, 15:22:49 »
... a davate tam to client_id a client_secret z toho user menu a ne z auth code flow menu, ze jo ?

Citace
Before you start go to your Fakturoid account and download your Client ID and Client Secret from your user screen Settings → User account.


neměl jsem, ale ani po výměně to nechodí. Jdu na podporu, každopádně MOC díky.

BTW: Chápu to správně že tenhle curl by mi měl vrátit TOKEN kterým pak autentizuju ten vlastní požadavek?

Re:OAuth a potřeba veřejné IP adresy
« Odpověď #32 kdy: 12. 04. 2024, 15:34:24 »
ano, mel byste dostat neco jako:

Kód: [Vybrat]
{
  "access_token": "26e53aa3244b4c0aed56cb54a0223484e9c4aea49b09a03e4600ba995811b6af06428afc223c4c0c",
  "token_type": "Bearer",
  "expires_in": 7200
}

access token vypreparujete nakym awk nebo jq a pouzijete v Authorization hlavicce pri api requestech


Re:OAuth a potřeba veřejné IP adresy
« Odpověď #33 kdy: 12. 04. 2024, 18:23:33 »
ano, mel byste dostat neco jako:

Kód: [Vybrat]
{
  "access_token": "26e53aa3244b4c0aed56cb54a0223484e9c4aea49b09a03e4600ba995811b6af06428afc223c4c0c",
  "token_type": "Bearer",
  "expires_in": 7200
}

access token vypreparujete nakym awk nebo jq a pouzijete v Authorization hlavicce pri api requestech

Jsem zvyklej na Xidel, to bude hračka.

Každopádně ještě jednou díky....

Re:OAuth a potřeba veřejné IP adresy
« Odpověď #34 kdy: 12. 04. 2024, 18:46:01 »
v pohode, dejte jen vedet zda to chodi, myslim ze by se to hodilo i ostatnim.


Re:OAuth a potřeba veřejné IP adresy
« Odpověď #35 kdy: 13. 04. 2024, 23:26:49 »
Vypadá to na nějaký problém na straně Fakturoidu, protože to invalid_client a 401 hlásí i když je dotaz vytvořen přesně podle dokumentace nebo podle toho, jak by ho vytvořila jejich oficiální PHP knihovna.

Re:OAuth a potřeba veřejné IP adresy
« Odpověď #36 kdy: 14. 04. 2024, 22:18:21 »
Vypadá to na nějaký problém na straně Fakturoidu, protože to invalid_client a 401 hlásí i když je dotaz vytvořen přesně podle dokumentace nebo podle toho, jak by ho vytvořila jejich oficiální PHP knihovna.

Jojo, taky mi to nedalo, taky sem to zkousel a maj to rozbity :) - resp. tipuju ze v dokumentaci neco chybi

Re:OAuth a potřeba veřejné IP adresy
« Odpověď #37 kdy: 22. 04. 2024, 16:56:01 »
Tak nakonec token získám takto (testovací mašina jede na Win):

Kód: [Vybrat]
curl.exe -s "https://app.fakturoid.cz/api/v3/oauth/token" -H "Content-Type: application/json" -H "Authorization: Basic Mjk4...  ...NDY0" -H "Accept: application/json" -d "{\"grant_type\": \"client_credentials\"}" | xidel.exe -s --input=- -e "access_token"
nerozchodil jsme to bez cURL protože Xidelu na Win nějak vadí dvojite uvozovky u POST dat, ale nijak moc jsme se s tím netrápil, to budu stejně ladit až nakonec na provozní mašině.

díky všem za pomoc!

Re:OAuth a potřeba veřejné IP adresy
« Odpověď #38 kdy: 22. 04. 2024, 18:53:58 »
To znamená, že client_id a client_secret mají být do BASE64 zakódované každé zvlášť a oddělené mezerou?

To by si to mohli opravit v dokumentaci a v referenční implementaci v PHP…

Re:OAuth a potřeba veřejné IP adresy
« Odpověď #39 kdy: 23. 04. 2024, 10:12:30 »
To znamená, že client_id a client_secret mají být do BASE64 zakódované každé zvlášť a oddělené mezerou?

To by si to mohli opravit v dokumentaci a v referenční implementaci v PHP…

tady je to popsané, jen mi trvalo zjistit že ten poslední zelený obdélníček POST je průklik k detailu :-/

https://www.fakturoid.cz/api/v3/authorization#client-credentials-flow

Re:OAuth a potřeba veřejné IP adresy
« Odpověď #40 kdy: 23. 04. 2024, 10:50:59 »
tady je to popsané, jen mi trvalo zjistit že ten poslední zelený obdélníček POST je průklik k detailu :-/

https://www.fakturoid.cz/api/v3/authorization#client-credentials-flow
Tam je právě napsané, že se to posílá jako standardní BASIC autentizace, client_id se použije jako jméno a client_secret jako heslo. Přičemž tahle varianta mi nefungovala, a vám podle všeho také ne.

Re:OAuth a potřeba veřejné IP adresy
« Odpověď #41 kdy: 23. 04. 2024, 15:23:38 »
tady je to popsané, jen mi trvalo zjistit že ten poslední zelený obdélníček POST je průklik k detailu :-/

https://www.fakturoid.cz/api/v3/authorization#client-credentials-flow
Tam je právě napsané, že se to posílá jako standardní BASIC autentizace, client_id se použije jako jméno a client_secret jako heslo. Přičemž tahle varianta mi nefungovala, a vám podle všeho také ne.

Ano, má tam být Bearer místo Basic

Re:OAuth a potřeba veřejné IP adresy
« Odpověď #42 kdy: 23. 04. 2024, 21:20:17 »
Pořád tedy není jasné, jak má ten požadavek vypadat, aby ta autentizace prošla. Uvedl jste nějaký příklad, ze kterého ale není jasné, jak má autentizační hlavička vzniknout. Navíc tam máte použitou autentizaci Basic, pak ale píšete, že se má použít Bearer.

Re:OAuth a potřeba veřejné IP adresy
« Odpověď #43 kdy: 24. 04. 2024, 10:46:16 »
Pořád tedy není jasné, jak má ten požadavek vypadat, aby ta autentizace prošla. Uvedl jste nějaký příklad, ze kterého ale není jasné, jak má autentizační hlavička vzniknout. Navíc tam máte použitou autentizaci Basic, pak ale píšete, že se má použít Bearer.

tohle je funkční výpis faktur po splatnosti (zatim jen na testovací Win mašině)

Kód: [Vybrat]
powershell.exe "[convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes(\"%client_id%:%client_secret%\"))"
Kód: [Vybrat]
for /f "tokens=*" %a in ('curl.exe -s "https://app.fakturoid.cz/api/v3/oauth/token" -H "Content-Type: application/json" -H "Authorization: Basic Mjk4Z... ...zNDY0" -H "Accept: application/json" -d "{\"grant_type\": \"client_credentials\"}" ^| xidel.exe -s --input=- -e "access_token"') do curl.exe -H "Content-Type: application/json" -H "Authorization: Bearer %a" -H "Accept: application/json" "https://app.fakturoid.cz/api/v3/accounts/...SLUG.../invoices.json?status=overdue"
BTW: Pokud se vyřeší eskejpování dvojuvozovek v shellu, lze vypustit ten cURL
« Poslední změna: 24. 04. 2024, 10:48:25 od neregistrovany »

Re:OAuth a potřeba veřejné IP adresy
« Odpověď #44 kdy: 24. 04. 2024, 21:19:22 »
Pokud by používali skutečnou BASIC autentizaci, kde by client_id bylo uživatelské jméno a client_secret heslo, pak není potřeba řešit nějaké ruční kódování hlavičky, BASIC autentizaci umí i curl.

Kód: [Vybrat]
curl -X POST --location "https://app.fakturoid.cz/api/v3/oauth/token" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"grant_type": "client_credentials"}' \
    --basic --user $client_id:$client_secret

Akorát že takhle mi to nefunguje, pořád to vrací 401 a v JSONu invalid_client.