From 628d10bae95874d83c97ec4985f65efd34251aea Mon Sep 17 00:00:00 2001 From: Ralph Soika Date: Mon, 21 Apr 2025 22:36:30 +0200 Subject: [PATCH] zoho oauth client impl --- doc/zoho/README.md | 13 +++++++--- .../zoho/ZohoOAuthGrantService.java | 26 ++++++++++++++++--- 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/doc/zoho/README.md b/doc/zoho/README.md index 2457968..d0cbf31 100644 --- a/doc/zoho/README.md +++ b/doc/zoho/README.md @@ -27,10 +27,17 @@ https://www.zoho.com/books/api/v3/oauth/ Base API URI= https://accounts.zoho.eu/ -## 1. Generating Grant Token +## 1. Client Einrichten -https://accounts.zoho.com/oauth/v2/auth?scope=ZohoBooks.invoices.CREATE,ZohoBooks.invoices.READ,ZohoBooks.invoices.UPDATE,ZohoBooks.invoices.DELETE&client_id=1000.NLTM2KUEHI696MSLGEIANATVGGX7IN&state=testing&response_type=code&redirect_uri=https://alexander-logistics-dwc.office-workflow.de/ +https://api-console.zoho.eu/client/1000.NLTM2KUEHI696MSLGEIANATVGGX7IN -## 2. Generate Access and Refresh Token +## 2. Generating Grant Token + +https://accounts.zoho.com/oauth/v2/auth?scope=ZohoBooks.invoices.CREATE,ZohoBooks.invoices.READ,ZohoBooks.invoices.UPDATE,ZohoBooks.invoices.DELETE&client_id=1000.NLTM2KUEHI696MSLGEIANATVGGX7IN&state=testing&response_type=code&redirect_uri=https://alexander-logistics-dwc.office-workflow.de/api/zoho/grant + +1000.NLTM2KUEHI696MSLGEIANATVGGX7IN +ee9ba49f16e77c64abb89cea13542d2326d8d03ce8 + +## 3. Generate Access and Refresh Token https://accounts.zoho.com/oauth/v2/token?code=1000.dd7exxxxxxxxxxxxxxxxxxxxxxxx9bb8.b6c0xxxxxxxxxxxxxxxxxxxxxxxxdca4&client_id=1000.NLTM2KUEHI696MSLGEIANATVGGX7IN&client_secret=ee9ba49f16e77c64abb89cea13542d2326d8d03ce8&redirect_uri=http://www.zoho.com/books&grant_type=authorization_code diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/zoho/ZohoOAuthGrantService.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/zoho/ZohoOAuthGrantService.java index 4e464cb..fb1e1f1 100644 --- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/zoho/ZohoOAuthGrantService.java +++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/zoho/ZohoOAuthGrantService.java @@ -40,6 +40,7 @@ import jakarta.servlet.http.HttpServletResponse; import jakarta.ws.rs.GET; import jakarta.ws.rs.Path; import jakarta.ws.rs.Produces; +import jakarta.ws.rs.QueryParam; import jakarta.ws.rs.core.Context; import jakarta.ws.rs.core.MediaType; @@ -84,7 +85,15 @@ public class ZohoOAuthGrantService { } /** - * Test method + * Receive Grant Code. + * + * The expected query params look like this: + * + * state=testing + * code=1000.c27802b99c007ad8db93a5a7291cb15a.8cb60b6a51df13ea627ef3ac7c2e4791 + * location=eu + * accounts-server=https%3A%2F%2Faccounts.zoho.eu + * * * @param workflowgroup * @param task @@ -94,14 +103,25 @@ public class ZohoOAuthGrantService { @GET @Path("/grant") @Produces({ MediaType.TEXT_HTML }) - public String getGrantToken() + public String getGrantToken( + @QueryParam("state") String state, + @QueryParam("code") String code, + @QueryParam("location") String location, + @QueryParam("accounts-server") String accountsServer) throws QueryException { logger.info("├── Receive Grant Token from Zoho"); String baseURI = servletRequest.getRequestURL().toString(); - logger.info("│ ├── Base URI=" + baseURI); + String queryString = servletRequest.getQueryString(); + logger.info("│ ├── queryString=" + queryString); + + logger.info("│ ├── state=" + state); + logger.info("│ ├── code=" + code); + logger.info("│ ├── location=" + location); + logger.info("│ ├── accounts-server=" + accountsServer); + return "Zoho Grant Token received!"; }