zoho oauth grant service added

This commit is contained in:
Ralph Soika 2025-04-21 22:13:38 +02:00
parent f623ea33ff
commit 703995f959
2 changed files with 144 additions and 0 deletions

36
doc/zoho/README.md Normal file
View file

@ -0,0 +1,36 @@
# Zoho Web API
AGL Dubai nutzt Zoho als Platform zusammen mit einer lokalen Steuerkanzlei
## Test/Prod Account Imixs
https://api-console.zoho.eu/
https://api-console.zoho.eu/client/1000.NLTM2KUEHI696MSLGEIANATVGGX7IN
```
client ID= 1000.NLTM2KUEHI696MSLGEIANATVGGX7IN
client secret= ee9ba49f16e77c64abb89cea13542d2326d8d03ce8
```
# Testumgebung
https://books.zoho.eu/app/20105697367
https://accounts.zoho.eu/home#
API Docu:
https://www.zoho.com/books/api/v3/introduction/
Authentication:
https://www.zoho.com/books/api/v3/oauth/
Base API URI= https://accounts.zoho.eu/
## 1. 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/
## 2. 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

View file

@ -0,0 +1,108 @@
/*
* Imixs-Workflow
*
* Copyright (C) 2001-2020 Imixs Software Solutions GmbH,
* http://www.imixs.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You can receive a copy of the GNU General Public
* License at http://www.gnu.org/licenses/gpl.html
*
* Project:
* https://www.imixs.org
* https://github.com/imixs/imixs-workflow
*
* Contributors:
* Imixs Software Solutions GmbH - Project Management
* Ralph Soika - Software Developer
*/
package com.alexanderlogistics.zoho;
import java.util.logging.Logger;
import org.imixs.workflow.exceptions.QueryException;
import jakarta.annotation.Resource;
import jakarta.ejb.SessionContext;
import jakarta.ejb.Stateless;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.Context;
import jakarta.ws.rs.core.MediaType;
/**
* Dieser API Endpoint dient dazu über zoho einen sogenannten Grant Token zu
* erhalten.
*
* https://www.zoho.com/books/api/v3/oauth/
*
* Er dient als redirect URL wenn jemand einen solchen Token über den Browser
* anfordert.
* Der URL muss hier als CallBack URL angegeben sein!
*
* Beispiel:
*
* 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
*
* @version 1.0
* @author rsoika
*
*/
@Path("/zoho")
@Stateless
public class ZohoOAuthGrantService {
@Context
private HttpServletRequest servletRequest;
@Context
HttpServletResponse servletResponse;
@Resource
private SessionContext ctx;
private static Logger logger = Logger.getLogger(ZohoOAuthGrantService.class.getName());
@GET
@Path("/ping")
public String ping() {
logger.info("GET ping");
return "ping: " + System.currentTimeMillis();
}
/**
* Test method
*
* @param workflowgroup
* @param task
* @return
* @throws QueryException
*/
@GET
@Path("/grant")
@Produces({ MediaType.TEXT_HTML })
public String getGrantToken()
throws QueryException {
logger.info("├── Receive Grant Token from Zoho");
String baseURI = servletRequest.getRequestURL().toString();
logger.info("│ ├── Base URI=" + baseURI);
return "Zoho Grant Token received!";
}
}