Node JS SDK voor Zoho CRM
Inhoudsopgave
Node SDK is een wrapper voor Zoho CRM API's. Daarom is het aanroepen van een Zoho CRM API vanuit uw Node-applicatie slechts een functieaanroep die de meest geschikte reactie biedt.
Deze SDK ondersteunt verificatie van zowel één gebruiker als meerdere gebruikers.
Een Zoho-client registreren
Aangezien Zoho CRM API's worden geverifieerd met OAuth2-standaarden, moet u uw clientapp registreren bij Zoho. Uw app registreren:
- Ga naar deze pagina https://accounts.zoho.com/developerconsole.
- Klik op 'Add Client ID'.
- Voer de clientnaam, het clientdomein en de omleidings-URI in.
- Selecteer bij Client Type de optie 'Web based'.
- Klik op 'Create'.
- Uw clientapp is nu gemaakt en wordt weergegeven.
- U vindt de client-id en het clientgeheim van de zojuist geregistreerde app door te klikken op Options → Edit.
(Options is het pictogram met drie punten in de rechterhoek).
Installatie van Node CRM SDK
Node JS SDK wordt geïnstalleerd en er wordt een pakket gemaakt met de naam 'zcrmsdk' op de lokale computer.
Het pakket kan worden toegevoegd met de volgende code:
var ZCRMRestClient = require('zcrmsdk')
De SDK installeren
Hier leest u hoe u de Node JS SDK installeert
- Voer de onderstaande opdracht uit:
npm install zcrmsdk
Een andere methode voor het installeren van de SDK is om hem aan afhankelijkheden toe te voegen aan het package.json van de nodeserver met de nieuwste versie (aanbevolen) en npm install uit te voeren in de map waarin alle afhankelijkheden uit package.json worden geïnstalleerd.
De SDK upgraden
- Voer deze opdracht uit om de Node JS SDK te upgraden naar de nieuwste versie.
npm install --upgrade zcrmsdk
Configuraties
De gegevens van uw OAuth-client moeten aan de SDK worden verstrekt als een eigenschappenbestand. In de SDK moet u een bestand configureren met de naam oauth_configuration.properties. Plaats de respectieve waarden in dat bestand. U kunt het bestand in de map resources plaatsen waar de SDK wordt gebruikt.
Vul alleen de waarden voor de volgende sleutels in.
Wijzig de waarde van crm.iamurl op basis van uw domein (EU,CN). Standaardwaarde ingesteld als US-domein.
In het bestand oauth_configuration.properties:
[zoho]
crm.iamurl=
crm.clientid=
crm.clientsecret=
crm.redirecturl=
- CRM.clientid, crm.clientsecret en crm.redirecturl zijn de configuraties van uw OAuth-client die u krijgt nadat u uw Zoho-client hebt geregistreerd.
- crm.iamurl is de URL van het account. Het kan accounts.zoho.com of accounts.zoho.eu zijn. Als de crm.iamurl niet is opgegeven, is de URL standaard accounts.zoho.com.
In het bestand configuration.properties:
[crm]
api.url=
api.user_identifier=
api.tokenmanagement=
[mysql]
username=
password=
- api.url is de URL die wordt gebruikt om API's aan te roepen. De URL is standaard www.zohoapis.com.
- api.user_identifier is standaard leeg. Voor verificatie door één gebruiker kan deze sleutel worden ingevuld met de bijbehorende e-mail-id, zodat alle aanroepen worden uitgevoerd met de verificatie van deze gebruiker.
- api.tokenmanagement wordt gegeven als een maatstaf voor het beheren en onderhouden van tokens. Als tokenbeheer niet is opgegeven, wordt de standaardimplementatie van de sdk (mysql) gevolgd.
- username en password kunnen hier worden opgegeven als u deze al hebt gemaakt voor MySQL.
De bovenstaande sleutels die zijn opgegeven in het bestand configuration.properties zijn allemaal optioneel.
Tokenopslagmechanisme
Om de standaard tokenopslag te gebruiken die door de SDK wordt geleverd, moet u het volgende doen:
Mysql moet worden uitgevoerd op de standaardpoort in localhost.
Er moet een database met de naam zohooauth worden gemaakt en er moet een tabel met de onderstaande configuraties aanwezig zijn in de database. Tabel met de naam 'oauthtokens moet de kolommen 'useridentifier' (varchar) 'accesstoken' (varchar), 'refreshtoken' (varchar) en ' expirytime' (bigint) bevatten.
Nadat de configuratie is ingesteld, worden de opslag en het ophalen van tokens afgehandeld door de SDK.
Als de gebruiker zijn eigen mechanisme wil gebruiken, kan hij dit noemen in configuration.properties door de betreffende module te leveren in api.tokenmanagement.
Deze module moet de volgende methoden bevatten:
- saveOAuthTokens(token_obj)
- updateOAuthTokens(token_obj)
- Ongeacht de reactie vindt de volgende uitvoering plaats. De gebruiker moet dus voorzichtig zijn met de module.
- getOAuthTokens()
- De verwachte reactie voor deze methode: JSON-array met json-reactie met de velden expirytime, refreshtoken en accesstoken.
Let op:
- alle methoden moeten de belofte waarmaken.
saveOAuthtoken en updateOAuthTokens worden aangeroepen met JSON-parameters, die de onderstaande velden bevatten:
access_token
refresh_token
expires_in
Voorbeeldcode voor aangepast tokenbeheer getOAuthTokens()
tokenmanagement.getOAuthTokens = function(user_identifier){ //expires in : 1527839622728
return new Promise(function(resolve,reject){
var result = {};
result.accesstoken = '1000.xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxx';
result.expirytime = 15278396227289
result.refreshtoken = '1000.xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxx';
var result_array =[];
result_array.push(result);
resolve(result_array);
});
}
Initialisatie
Wanneer de app wordt gestart, moet het onderstaande codefragment worden aangeroepen voor initialisatie.
var ZCRMRestClient = require('zcrmsdk');
ZCRMRestClient.initialize().then(function()
{
//do whatever required after initialize
})
Bezig met genereren van zelf-geautoriseerd toekennings- en vernieuwingstoken
Voor clientapps moet het zelf-geautoriseerde toekenningstoken worden gegenereerd vanuit de Zoho Developer Console (https://accounts.zoho.com/developerconsole)
- Ga naar https://accounts.zoho.com/developerconsole
- Klik op Options → Self Client van de client waarvoor u wilt autoriseren.
- Voer een of meer (door komma's gescheiden) geldige Zoho CRM-scopes in die u wilt autoriseren in het veld 'Scope' en kies de vervaltijd. Geef een scope 'aaaserver.profile.READ' op in combinatie met Zoho CRM-scopes.
- Kopieer het toekenningstoken voor back-up.
- Genereer refresh_token uit het toekenningstoken door een POST-aanvraag met de onderstaande URL uit te voeren
https://accounts.zoho.com/oauth/v2/token?code={grant_token}&redirect_uri={redirect_uri}&client_id={client_id}&client_secret={client_secret}&grant_type=authorization_code
- Kopieer het vernieuwingstoken voor back-up.
Houd er rekening mee dat het gegenereerde toekenningstoken alleen geldig is voor de opgegeven tijd die u hebt gekozen bij het genereren van het token. Daarom moeten de toegangs- en vernieuwingstokens binnen die tijd worden gegenereerd.
Telkens wanneer de server opnieuw wordt gestart, moet deze functie worden aangeroepen en moeten beide configuratiebestanden de juiste waarden bevatten voordat deze functie wordt aangeroepen, anders wordt de uitzondering gegenereerd.
Alle functies maken beloften waar in zcrm node sdk.
Toegangs- en vernieuwingstokens ophalen van toekenningstoken via methodeaanroepen
ZCRMRestClient.generateAuthTokens(user_identifier,grant_token).then(function(auth_response){
console.log("access token :"+auth_response.access_token);
console.log("refresh token :"+auth_response.refresh_token);
console.log("expires in :"+auth_response.expires_in);
});
De toegangs- en vernieuwingstokens worden gegenereerd. Als het toegangstoken is verlopen, wordt het automatisch vernieuwd door de SDK.
Als de gebruiker beschikt over een vernieuwingstoken en hiervoor een toegangstoken moet genereren, kan de volgende functie worden gebruikt:
ZCRMRestClient.generateAuthTokenfromRefreshToken(user_identifier,refresh_token).then(function(auth_response){
console.log("access token :"+auth_response.access_token);
console.log("refresh token :"+auth_response.refresh_token);
console.log("expires in :"+auth_response.expires_in);
});
Voorbeeld API-aanroep voor het ophalen van leads:
var input ={};
input.module = "Leads";
var params = {};
params.page = 0;
params.per_page = 5;
input.params = params;
zcrmsdk.API.MODULES.get(input).then(function(response){
var result = "<html><body><b>Leads</b>";
var data = response.body;
data = JSON.parse(data);
data = data.data;
for (i in data){
var record = data[i];
var name = record.Full_Name;
result+="<span>"+name+"</span>";
}
result+="</body></html>";
})
Hiërarchie
zcrmsdk
API
ORG
get
MODULES
get
post
put
delete
getAllDeletedRecords
getRecycleBinRecords
getPermanentlyDeletedRecords
search
SETTINGS
getFields
getLayouts
getCustomViews
updateCustomViews
getModules
getRoles
getProfiles
getRelatedLists
ACTIONS
convert
USERS
get
ATTACHMENTS
uploadFile
deleteFile
downloadFile
uploadLink
uploadPhoto
downloadPhoto
deletePhoto
FUNCTIONS
executeFunctionsInGet
executeFunctionsInPost
Net als in de hiërarchie heeft de module van de zcrmsdk-entiteit variabelen om zijn eigen en andere module-eigenschappen op te halen.
Als u bijvoorbeeld een API wilt aanroepen om modulegegevens op te halen, moet het verzoek zcrmsdk.API.MODULES.{operation_type} zijn. De bewerkingstypen kunnen GET, POST, PUT, DELETE of CREATE zijn.
Afhandeling van reacties
Alle API-aanroepen geven de werkelijke API-reactie dat door Zoho API's wordt gegeven, behalve het downloaden van bestanden.
Voor het downloaden van bestanden bevat de reactie een extra bestandsnaam voor het veld.
Foutafhandeling:
Alle fouten worden expliciet weergegeven en wees voorzichtig bij het opsporen van deze fouten.