Serverloze functies - OAuth2 gebruiken
Inhoudsopgave
OAuth2
Functies kunnen toegankelijk worden gemaakt via het OAuth2-protocol. Met de OAuth2-methode kunt u specifieke gegevens delen met elke toepassing en tegelijkertijd uw gebruikersnamen en wachtwoorden privé houden door de scope van toegang tot specifieke gegevens in te stellen.
Als u een functie beschikbaar wilt maken via de OAuth2-methode, moet u uw client eerst registreren bij Zoho CRM. Hier leest u hoe u uw clienttoepassing kunt registreren.
Houd echter rekening met enkele belangrijke punten:
- De scope voor de client bij gebruik van de HTTP GET-methode moet zijn:
ZohoCRM.functions.execute.READ
- De scope voor de client bij gebruik van de HTTP POST-methode moet zijn:
ZohoCRM.functions.execute.CREATE
Zodra de verificatie is voltooid, kunt u doorgaan met het maken van uw functie.
Zie ook:
- Functies in Zoho CRM.
- Integratietaken voor functies met behulp van API's van versie 2.0.
- Deluge-script - Referentiegids.
- Verbindingen - Verbind uw Zoho CRM met elke toepassing van derden door hun API's in een functie te openen.
- Widgets - Integreerbare UI-componenten in Zoho CRM, waarmee gebruikers informatie uit toepassingen van derden kunnen benutten.
Er zijn veel verschillende situaties waarin een functie die beschikbaar is als API kan worden gebruikt. Een functie kan bijvoorbeeld zo worden ingesteld dat deze wordt geactiveerd wanneer een bepaalde limiet wordt overschreden in statistische gegevens over de prestaties van een bedrijf. Dit document is bedoeld om u een voorbeeldfunctie te bieden die wordt geactiveerd via externe bronnen, waar de functie wordt geleverd als API.
Voorbeeldfunctie:
Scenario:
Stel dat het vereist is om toestemming van klanten te verkrijgen en hen zich te laten aanmelden voor nieuwsbrieven. Dit maakt beveiliging mogelijk en voorkomt inbreuk op hun privacy.
U kunt een knop toevoegen aan de weergavepagina van een record van een contactpersoon. Met de knop kunt u een widget openen waarmee een abonnementsformulier wordt geopend (dat door uw agenten moet worden ingevuld). Raadpleeg onze Help voor Widgets als u widgets wilt maken.
Via de widget wordt het abonnementsformulier verzonden. Tevens wordt een e-mailbericht met het toestemmingsformulier naar de klant verzonden. Nadat de klant het toestemmingsformulier heeft geaccepteerd, wordt de informatie over de contactpersoon toegevoegd aan de MailChimp-campagnelijst.
Vereiste toepassingen:
- MailChimp - voor nieuwsbrief
- Google Drive - voor toestemmingsformulier
Vereisten:
- Maak verbindingen voor MailChimp en Google Drive.
- Roep MailChimp en de Google Drive API aan in deze functie.
- Verander de functie in een API.
- Maak een widget en roep de functie erin aan.
De verbindingen tot stand brengen:
Om de functie in staat te stellen toepassingen van derden te gebruiken en de gegevensoverdracht te vergemakkelijken, moet u eerst een verbinding instellen tussen Zoho CRM en de software van derden. In dit geval betreft het MailChimp en Google Drive. Meer informatie.
Voor MailChimp:
Voor Google Drive:
Maak de functie:
De stappen voor het maken van de functie volgens de vereisten bestaan uit 2 delen.
Deel 1: schrijf de functiecode
Maak een zelfstandige functie met de volgende code.
De functiecode is:
string subscribeNewsletter(string listId,string emailAddress,string extraDetails){
mailChimpURL = "https://us18.api.mailchimp.com/3.0/";
if(isNull(listId))
{
//Standaardlijst
listId = "2a9a3690fd";
}
if(isNull(emailAddress))
{
return "Email-adres kan niet null zijn";
}
//Hall alle leden op
membersList = invokeurl
[
url :mailChimpURL + "/lists/" + listId + "/members"
type :GET
parameters:""
connection:<CONNECTION_LINKNAME>
];
//Lid staat al in lijst
for each memberInfo in membersList.get("members")
{
if(emailAddress.equals(memberInfo.get("email_address")))
{
return "Het lid heeft zich al aangemeld voor de Zoho-nieuwsbrief";
}
}
//Haal alle documenten op uit Google Drive
gdriveURL = "https://www.googleapis.com/drive/v2/files";
fileList = invokeurl
[
url :gdriveURL
type :GET
parameters:""
connection:<CONNECTION_LINKNAME>
];
//Haal download-URL van toestemmingsformulier op
webContentLink = null;
for each fileInfo in fileList.get("items")
{
title = fileInfo.get("title");
if(title.equals("Consent-Form.docx"))
{
webContentLink = fileInfo.get("webContentLink");
break;
}
}
if(isNull(webContentLink))
{
return "Geen document gevonden op Drive. Document Name ::: Consent-Form.docx";
}
//Stuur melding -
name = "Guest";
signature = "Zoho";
if(!isNull(extraDetails))
{
if(extraDetails.contains("name"))
{
name = extraDetails.get("name");
}
if(extraDetails.contains("signature"))
{
signature = extraDetails.get("signature");
}
}
sendmail
[
from :zoho.adminuserid
to :emailAddress
subject :"toestemmingsformulier"
message :"Hoi " + naam + ",<expression></expression><div><br></div><div>Voordat u zich aanmeldt voor de Zoho-nieuwsbrief, </div><br /><div>dient u het <br /><a target='_blank' href='" + webContentLink + "'>toestemmingsformulier te downloaden</a> en mailen naar newsletter@xyz.com</div><div><br></div><div><br></div><div>Met vriendelijke groet,</div><div>" + signature + "<br></div>" ] if(extraDetails.contains("mobile"))
{
sendsms
[
to :extraDetails.get("mobile")
message:"Toestemmingsformulier is verzonden naar uw e-mail-ID :- " + emailAddress
];
}
return "Toestemmingsformulier succesvol verzonden"; }
Let op:
- De gehele hoofdtekst van de aanvraag zal niet beschikbaar zijn in de functie. Deze moet worden verzonden of ontvangen binnen de argumenten.
Configureer een argument dat de gehele tekst van de aanvraag bevat.
In de bovenstaande functie kunt u zien dat 'extraDetails' een van de functieargumenten is. Hiermee worden de naam en handtekening van de gebruiker opgehaald. Dit is handig wanneer u niet weet hoeveel argumenten u aan uw functie wilt doorgeven.
Aangezien er geen manier is om vast te stellen hoeveel argumenten de functie bevat, kunt u de gehele hoofdtekst van de aanvraag opnemen in één argument van de functie.
Let op:
- De waarde van 'listId' zal '2a9a3690fd' zijn (in geval van een nullwaarde).
- 'emailAddress' is verplicht.
- Het argument 'extraDetails' wordt gebruikt om extra informatie door te geven voor het argument dat de gehele hoofdtekst van de aanvraag bevat.
- 'listId' en 'emailAddress' zijn van het type STRING.
- 'extraDetails' is van het type STRING en JSON wordt doorgegeven in 'extraDetails'.
Deel 2: de functie beschikbaar maken als API
Nadat de functie is gemaakt, getest en opgeslagen, kunt u de functie omzetten in een API.
- Ga naar Instellen > Developer Space > Functies.
- Klik op het pictogram Instellingen voor de bijbehorende functie op basis waarvan een API moet worden gemaakt.
- Klik op REST API.
- Schakel de schuifregelaar OAuth2 in.
- Klik op Opslaan.
De functie binnen widgets aanroepen
Nu volgt het feitelijke actieve onderdeel. Aangezien de functie is omgezet in een API-aanroep, kunt u de API-code voor de functie in elke widget, app of software gebruiken en zodanig instellen dat deze wordt geactiveerd op basis van uw vereisten.
Gebruik de volgende HTML-code (toestemmingsformulier van de nieuwsbrief) om een widget te maken. Klik hier voor meer informatie over het maken van widgets.
HTML-code:
<h2>Nieuwsbrief XYZ</h2>
<div class="container">
<h2<Abonneren op onze nieuwsbrief</h2>
</div>
<div class="container" style="background-color:white">
<input type="text" id="name" placeholder="Name" name="name" required>
<input type="text" placeholder="Email address" name="mail" required id="email">
<label>
<input type="checkbox" checked="checked" name="subscribe">Dagelijkse nieuwsbrief
</label>
</div>
<div class="container">
<input type="submit" value="Subscribe" id="subscribeButton">
</div>
<span id="res1">Klik op de knop hierboven om u aan te melden</span>
Script (Javascript):
<script type="text/javascript">
$("#subscribeButton").click(function() {
var extraDetails = {};
extraDetails.name = $("#name").val();
extraDetails.signature = "XYZ";
var arguments = {};
arguments.extraDetails = extraDetails;
arguments.emailAddress = $("#email").val();
var data = {
"arguments": JSON.stringify(arguments),
}
ZOHO.embeddedApp.init()
.then(function() {
ZOHO.CRM.FUNCTIONS.execute("subscribenewsletter", data)
.then(function(resp) {
$('#res1').text(JSON.stringify(resp));
}).catch(function(resp) {
$('#res1').text(JSON.stringify(resp));
})
});
});
Let op:
- Het bovenstaande script werkt alleen voor widgets die in het CRM-systeem zijn geplaatst.
- Klik hier voor meer informatie over de integratietaken voor functies.
Het resultaat:
Abonneren op de nieuwsbrief:
De abonnementsmail ophalen:
Zodra het toestemmingsformulier is teruggestuurd naar de verzender, wordt het abonnement op de nieuwsbrief geactiveerd.
Nadelen van het niet gebruiken van serverloze functies:
De gebruiker moet het volgende handmatig doen:
- De toepassing registreren voor MailChimp en Google Drive.
- Code voor het verwerken van de OAuth2-flow.
- API's van MailChimp aanroepen om de beschikbaarheid van gebruikers te controleren.
- De API van Google Drive aanroepen om de document-URL op te halen.
- Code schrijven voor het verzenden van een e-mail- en sms-bericht naar de klant.
Zoals u hierboven kunt zien, zijn er veel stappen vereist om handmatig code voor de widget en de functionaliteit van de widget te schrijven. Deze methode is tijdrovend en vereist veel handmatige taken. U kunt dit vermijden door een serverloze functie te gebruiken.