API
வெளிப்புற தளங்களில் செயல்களை தானியங்குபடுத்துங்கள்
எழுதியவர் Fredrika

இந்தப் பக்கத்தில்
மேலோட்டம்
இந்த வழிகாட்டி API பணியைப் பற்றியது. எங்கள் முழு API ஆவணங்களை இங்கே காணலாம் இங்கே.
வெளிப்புற தளங்களில் பணிகளை தானியங்குபடுத்த API பணிகள் பயன்படுத்தப்படுகின்றன. பயனர் பதிவு செய்துள்ளாரா அல்லது வாங்குதல் செய்துள்ளாரா, Github இல் ஒரு சிக்கலுக்கு PR திறந்துள்ளாரா அல்லது Reddit ஆதரவைச் சேர்த்துள்ளாரா என்பதை உறுதிப்படுத்த இதைப் பயன்படுத்தலாம். சாத்தியங்கள் எல்லையற்றவை. தொடங்கி செயல்பாட்டை முயற்சிக்க, பிற Zealy சமூகங்களுடன் கூட்டாண்மைகளை மேற்கொள்ள நீங்கள் பயன்படுத்தக்கூடிய ஒரு அடிப்படை endpoint ஐ வழங்குகிறோம். அதை எவ்வாறு அமைப்பது என்பதை கீழே மேலும் அறிக.
அடிப்படைகள்
"API" பணியை உருவாக்குதல்
- இதில் கிளிக் செய்யவும் 'பணியைச் சேர்'.
- தேர்ந்தெடு 'Api'.
- அழைக்க வேண்டிய endpoint மற்றும் தேவைப்பட்டால் API key-ஐ வரையறுக்கவும்.
- பயனர்கள் எவ்வாறு அடையாளம் காண்பார்கள் என்பதைத் தேர்ந்தெடுக்கவும். இதிலிருந்து தேர்ந்தெடுக்கலாம் மின்னஞ்சல், Twitter, Discord, Wallet முகவரி, அல்லது Zealy Connect.
- தேர்ந்தெடுத்தால் wallet இணைப்பு, எந்த நெட்வொர்க்கைப் பயன்படுத்துவது என்பதையும் தேர்ந்தெடுக்கலாம்.

-
தேர்ந்தெடுத்தால் Zealy Connect, இந்தப் படிகளைப் பின்பற்றவும்:
- ரீடைரக்ட் URL-ஐ வரையறுக்கவும்: இந்த URL அங்கீகாரத்திற்குப் பயன்படுத்தப்படும். உங்கள் அமைப்பில் அங்கீகரிக்க பயனர்களை இந்த URL-க்கு நாங்கள் ரீடைரக்ட் செய்வோம்.

- சமூக ரகசியத்தை உருவாக்கவும்: சமூக ரகசியத்தை உருவாக்குவது இதற்குத் தேவை Zealy Connect வேலை செய்ய. நீங்கள் ரகசியத்தை இங்கிருந்து உருவாக்கலாம் Zealy Connect அமைப்புகள் இன் கீழ் Integrations பிரிவு உங்கள் சமூக அமைப்புகளில்.

APIs எவ்வாறு செயல்பட வேண்டும் என்பது பற்றிய ஆழமான தகவலுக்கு, தயவுசெய்து பார்க்கவும் API ஆவணங்கள் மேலும் Zealy Connect நிர்வாகம் குறித்த வழிகாட்டலுக்கு, பார்க்கவும் Zealy Connect ஆவணங்கள்.
Domino உடன் ஒருங்கிணைப்பு
Domino என்பது Web3 Zapier ஆகும். இது Zealy இன் திறன்களை விரிவுபடுத்தவும், இயல்பாக ஆதரிக்கப்படாத பணிகளை தானாகவே மதிப்பாய்வு செய்யவும் உங்களை அனுமதிக்கிறது, எடுத்துக்காட்டாக:
- ஒரு பயனரின் Twitter பெயர் அல்லது பயோவில் குறிப்பிட்ட சொல் உள்ளதா எனச் சரிபார்த்தல்
- ஒரு பயனரின் NFT & டோக்கன் இருப்பைச் சரிபார்த்தல்
- ஒரு பயனர் Discord இல் குறிப்பிட்ட எண்ணிக்கையிலான நபர்களை அழைத்துள்ளாரா எனச் சரிபார்த்தல்
- மேலும் பல
அவர்களின் ஆவணங்களைப் பார்க்கவும் ஒருங்கிணைப்புக்கு.
இறுதிப்புள்ளி சோதனை
இறுதிப்புள்ளியை உள்ளமைக்கும்போது, அது எதிர்பார்த்தபடி செயல்படுகிறதா என்பதை உறுதிசெய்ய பின்வரும் சோதனைகளை தானாகவே இயக்குவோம்:
- அழைப்பு 10 வினாடிகளுக்கு மேல் எடுக்காதா என்பதைச் சரிபார்க்கிறது
- பயனருக்குக் காட்டுவதற்காக பிழைச் செய்தி சரியான வடிவத்தில் உள்ளதா என்பதைச் சரிபார்க்கிறது
- எதிர்பாராத நிலைக் குறியீடுகள் எதுவும் இல்லை என்பதை உறுதிப்படுத்துதல். இறுதிப்புள்ளி 200 அல்லது 400 மட்டுமே திருப்பித் தர வேண்டும்.
தனிப்பயன் இறுதிப்புள்ளியை உருவாக்குதல்
கோரிக்கை
API பணிகளை தனிப்பயன் POST இறுதிப்புள்ளியுடன் பயன்படுத்தலாம், இது பின்வரும் உள்ளடக்கத்தை ஏற்கும்:
{
/**
* The user id on Zealy
*/
userId: string;
/**
* Your community id on Zealy, if you use the endpoint
* on multiple communities this might be useful
*/
communityId: string;
/**
* Your community's subdomain on Zealy, if you use the endpoint
* on multiple communities this might be useful
*/
subdomain: string;
/**
* The id of the quest
*/
questId: string;
/**
* This will be generated on every claim as a way to look up an error.
* It will also be displayed for the user when a claim fails.
*/
requestId: string;
/**
* Accounts will be sent if at least one identification method has been configured
*/
accounts?: {
/**
* The user's email address
*/
email?: string;
/**
* The user's Ethereum wallet address that he has authenticated with
*/
wallet?: string;
/**
* The user's Discord id and handle
*/
discord?: {
id: string;
handle: string;
};
/**
* The user's Twitter id and username
*/
twitter?: {
id: string;
username: string;
};
/**
* Your platform user ID stored as part of the Zealy Connect integration
*/
zealy-connect: string
};
}பணியை உருவாக்கும்போது அமைக்கப்படும் API விசையுடன் இதைப் பாதுகாக்கலாம். API விசை இவ்வாறு தலைப்புகளில் அனுப்பப்படும்:
{
"X-Api-Key": apiKey,
}பதில்
பயனர் செயலை வெற்றிகரமாகச் செய்திருந்தால், நீங்கள் ஒரு 200 நிலை. பயனர் பின்னர் பணியை வெற்றிகரமாகக் கோருவார்.
{
"message": "User completed the action"
}இல்லையெனில், 400 நிலை பதிலில் உடலில் ஒரு செய்தியுடன் திருப்பித் தரப்பட வேண்டும். செய்தி உருவாக்கப்பட்டதுடன் காட்டப்படும் requestId உங்களுக்கும் பயனருக்கும் ஏதேனும் சிக்கல்களை பிழைத்திருத்த உதவ. இது முடிந்தவரை விவரமாக இருப்பதை உறுதிப்படுத்திக் கொள்ளுங்கள்.
{
"message": "We could not find a user with email kenny@zealy.io"
}குறியீட்டு எடுத்துக்காட்டு
// server.js
//
// Use this sample code to handle quest verification in your endpoint.
//
// 1) Paste this code into a new file (server.js)
//
// 2) Install dependencies
// npm install express
//
// 3) Run the server on http://localhost:3000
// node server.js
const express = require('express');
const app = express();
const apiKey = '5888a6800dbac634e52d8504f097e064'; // Replace with your API key configured in Zealy task
app.post('/claim', express.raw({ type: 'application/json' }), (req, res) => {
const payload = req.body;
const headers = req.headers
if (apiKey !== headers['x-api-key']) {
throw new Error('Invalid API Key')
}
const success = true; // Replace with custom logic
if (!success) {
return res.status(400).send({
message: 'Validation failed' // Replace with custom error message - will be displayed to the user
})
}
return res.status(200).send({
message: "Quest completed"
})
});
app.listen(3000, () => console.log('Running on port 3000'));ngrok மூலம் உள்ளூர் சோதனை
உங்கள் தனிப்பயன் இறுதிப்புள்ளியை உள்ளூரில் உருவாக்கி சோதிக்கும்போது, Zealy அதற்கு API கோரிக்கைகளை அனுப்பக்கூடிய வகையில் உங்கள் உள்ளூர் சேவையகத்தை இணையத்தில் வெளிப்படுத்த ஒரு வழி தேவை. ngrok என்பது localhost-க்கு பாதுகாப்பான சுரங்கங்களை உருவாக்கும் ஒரு கருவி, இந்த நோக்கத்திற்கு இது சரியானது. ngrok-ஐ அமைத்து உங்கள் இறுதிப்புள்ளியை சோதிக்க இந்தப் படிகளைப் பின்பற்றவும்:
படி 1: ngrok-ஐ நிறுவவும் ngrok-இன் இணையதளத்திலிருந்து ngrok-ஐ பதிவிறக்கவும். உங்கள் இயக்க முறைமைக்கான நிறுவல் வழிமுறைகளைப் பின்பற்றவும்.
படி 2: ngrok அமைக்கவும் இலவச ngrok கணக்கில் பதிவு செய்து, ngrok டாஷ்போர்டில் இருந்து உங்கள் authtoken-ஐப் பெறுங்கள். உங்கள் டெர்மினலில் ngrok authtoken YOUR_AUTH_TOKEN என இயக்கி உங்கள் ngrok கணக்கை இணைக்கவும்; YOUR_AUTH_TOKEN-ஐ உங்கள் ngrok டாஷ்போர்டில் உள்ள டோக்கனுடன் மாற்றவும்.
படி 3: உங்கள் உள்ளூர் சேவையகத்தைத் தொடங்கவும் எண்ட்பாயிண்ட்டை ஹோஸ்ட் செய்யும் உங்கள் உள்ளூர் சேவையகம் இயங்குவதை உறுதிசெய்யவும். எடுத்துக்காட்டாக, உங்கள் சேவையகம் Node.js ஆப் எனில், node server.js என இயக்கலாம்.
படி 4: ngrok மூலம் உங்கள் உள்ளூர் சேவையகத்தை வெளிப்படுத்தவும்
புதிய டெர்மினல் சாளரத்தைத் திறந்து, உங்கள் உள்ளூர் சேவையகத்தின் போர்ட்டுக்கு (எ.கா., 3000) ngrok சுரங்கப்பாதையைத் தொடங்கவும்: ngrok http http://127.0.0.1:3000.
ngrok டெர்மினலில் ஒரு ஃபார்வேர்டிங் URL-ஐக் காண்பிக்கும் (எ.கா., https://abc123.ngrok.io). இதுவே Zealy உங்கள் உள்ளூர் சேவையகத்தை அணுகப் பயன்படுத்தும் பொது URL ஆகும்.
படி 5: Zealy-ல் உங்கள் API பணியை உள்ளமைக்கவும் Zealy-ல் உங்கள் API பணியை அமைக்கும்போது ngrok ஃபார்வேர்டிங் URL-ஐ எண்ட்பாயிண்ட் URL ஆகப் பயன்படுத்தவும். தேவையான பாதையைச் சேர்க்கவும், எடுத்துக்காட்டாக, https://abc123.ngrok.io/claim.
குறிப்பு: நினைவில் கொள்ளுங்கள், ngrok URL-கள் தற்காலிகமானவை, நீங்கள் ngrok-ஐ மீண்டும் தொடங்கும் ஒவ்வொரு முறையும் மாறும், தனிப்பயன் துணை-டொமைன்களை ஆதரிக்கும் கட்டணச் சந்தாவை நீங்கள் வைத்திருந்தால் தவிர. நீங்கள் ngrok-ஐ மீண்டும் தொடங்கும் ஒவ்வொரு முறையும் Zealy-ல் endpoint-ஐப் புதுப்பிக்க மறக்காதீர்கள்.
இந்தப் படிகளைப் பின்பற்றுவதன் மூலம், உங்கள் தனிப்பயன் endpoint-ஐ உற்பத்தி சேவையகத்தில் வரிசைப்படுத்துவதற்கு முன், உள்ளூர் மேம்பாட்டுச் சூழலில் எளிதாகச் சோதித்து பிழைத்திருத்தம் செய்யலாம்.
Zealy Connect ஒருங்கிணைப்பு
Zealy Connect-ஐப் பயன்படுத்தும்போது, பணி அமைப்பின் போது குறிப்பிடப்பட்ட URL-க்கு பயனரை நாங்கள் திருப்பிவிடுவோம். பின்வரும் query params-ஐச் சேர்ப்போம்:
zealyUserId: உங்கள் தளத்துடன் அவர்களை இணைக்கப் பயன்படும், Zealy அமைப்பில் உள்ள பயனருக்கான தனித்துவமான அடையாளங்காட்டி.callback: அங்கீகாரம் முடிந்த பிறகு பயனரைத் திரும்பத் திருப்பிவிட வேண்டிய URL, இதன் மூலம் அவர்கள் பணியைக் கோரலாம்.signature: கோரிக்கையின் நம்பகத்தன்மையைச் சரிபார்க்கப் பயன்படும் SHA-256 ஹாஷ், இது Zealy-யிலிருந்து வந்ததை உறுதிசெய்கிறது.
தொடக்கப் புள்ளியாகப் பயன்படுத்தக்கூடிய முழுமையான எடுத்துக்காட்டு endpoint இங்கே:
const YOUR_COMMUNITY_SECRET = "fdb68b155a1ccf2e636c7cd7e0816530"; // Replace with your secret generated in Settings > Integrations > Zealy Connect
app.get("/connect", (req, res) => {
// Extract the query parameters
const { zealyUserId, signature, callbackUrl } = req.query;
/**
* Verifying signature to ensure the request is coming from Zealy
*/
const fullUrl = new URL(
`${req.protocol}://${req.get("host")}${req.originalUrl}`
);
fullUrl.searchParams.delete("signature");
const hmac = crypto.createHmac("sha256", YOUR_COMMUNITY_SECRET);
hmac.update(fullUrl.toString());
const generatedSignature = hmac.digest("hex");
if (generatedSignature !== signature){
return res.status(400).send("Invalid signature");
}
/**
* Redirect to login if the user is not authenticated
*/
if (!req.session.user) {
res.redirect(`/login?redirect=${encodeURIComponent(req.originalUrl)}`); // Redirect back after the user logs in
}
/**
* Save the Zealy User ID (optional)
*/
// await updateUser(req.session.user.id, { zealyId: zealyUserId });
/**
* Redirect Back to Zealy
*/
const userId = req.session.user.id; // Replace with your platform user ID
const callbackWithParams = new URL(callbackUrl as string);
callbackWithParams.searchParams.append("identifier", userId);
const hmac = crypto.createHmac("sha256", YOUR_COMMUNITY_SECRET);
hmac.update(callbackWithParams.toString());
const callbackSignature = hmac.digest("hex");
callbackWithParams.searchParams.append("signature", callbackSignature);
res.redirect(callbackWithParams.toString());
});1. கையொப்பத்தைச் சரிபார்க்கவும்
உங்கள் பயன்பாடு முதலில் செய்ய வேண்டியது, உங்கள் சமூக ரகசியத்தைப் பயன்படுத்தி கையொப்பத்தைச் சரிபார்ப்பதாகும். இந்தச் சரிபார்ப்பு, அழைப்பு உண்மையில் எங்களிடமிருந்தே வருகிறது என்பதையும் அது மாற்றப்படவில்லை என்பதையும் உறுதிசெய்கிறது.
கையொப்பத்தை உருவாக்க நாங்கள் SHA256 ஹாஷ் அல்காரிதத்தைப் பயன்படுத்துகிறோம். அதைச் சரிபார்க்க, பின்வரும் அணுகுமுறையைப் பயன்படுத்தலாம்:
const fullUrl = new URL(
`${req.protocol}://${req.get("host")}${req.originalUrl}`
);
fullUrl.searchParams.delete("signature");
const hmac = crypto.createHmac("sha256", YOUR_COMMUNITY_SECRET);
hmac.update(fullUrl.toString());
const generatedSignature = hmac.digest("hex");
const isSignatureValid = generatedSignature === req.query.signature;2. Zealy பயனர் ID-ஐப் பயன்படுத்தவும்
அடுத்த படி நீங்கள் என்ன செய்ய விரும்புகிறீர்கள் என்பதைப் பொறுத்தது, ஆனால் வாடிக்கையாளர்கள் பொதுவாக உங்கள் தளத்தில் தற்போதைய பயனரை உள்நுழைவு செய்து, உங்கள் தளத்தின் பயனர் ID-ஐ Zealy பயனர் ID-உடன் இணைப்பார்கள். கீழே ஒரு எடுத்துக்காட்டு உள்ளது:
/**
* Redirect to login if the user is not authenticated
*/
if (!req.session.user) {
res.redirect(`/login?redirect=${encodeURIComponent(req.originalUrl)}`); // Redirect back after the user logs in
}
/**
* Save the Zealy User ID (optional)
*/
// await updateUser(req.session.user.id, { zealyId: zealyUserId });
3. Zealy-க்கு மீண்டும் திருப்பிவிடவும்
கடைசி படி, நாங்கள் வழங்கும் callback query parameter-ஐப் பயன்படுத்தி, பயனர் பணியைக் கோர அனுமதிக்கும் வகையில், உங்கள் தளத்தின் பயனர் ID-உடன் பயனரை Zealy-க்கு மீண்டும் திருப்பிவிடுவதாகும். அழைப்பு உங்களிடமிருந்து வருகிறது என்பதையும் அது மாற்றப்படவில்லை என்பதையும் நாங்கள் சரிபார்க்கக்கூடிய வகையில் நீங்கள் ஒரு கையொப்பத்தையும் உருவாக்க வேண்டும். கீழே உள்ள எடுத்துக்காட்டைப் பார்க்கவும்:
const callbackWithParams = new URL(callbackUrl as string);
callbackWithParams.searchParams.append("identifier", connectedUserId); // Set it to your platform user ID
const hmac = crypto.createHmac("sha256", YOUR_COMMUNITY_SECRET);
hmac.update(callbackWithParams.toString());
const callbackSignature = hmac.digest("hex");
callbackWithParams.searchParams.append("signature", callbackSignature);
res.redirect(callbackWithParams.toString());4. Zealy
callback-ஐ நாங்கள் பெற்றதும், கையொப்பத்தைச் சரிபார்த்து, API பணி உள்ளடக்கத்தின் ஒரு பகுதியாக அனுப்பக்கூடிய வகையில் உங்கள் தளத்தின் பயனர் ID-ஐச் சேமிப்போம்.
இப்போது பயனர் இந்தப் பணியையும், அதே redirect URL-உடன் Zealy Connect-ஐப் பயன்படுத்தும் வேறு எந்தப் பணியையும் கோர முடியும். ஒவ்வொரு பணிக்கும் பயனர் இணைக்க வேண்டியதில்லை என்பதற்காக இதை நாங்கள் நினைவில் வைத்திருப்போம்.
ஒரு பயனரின் Zealy Connect தொடர்பை நீக்க வேண்டுமானால், நீங்கள் பயன்படுத்தலாம் உறுப்பினருக்கான Zealy Connect API பாதையை நீக்கு. இந்தப் பாதை ஒரு குறிப்பிட்ட உறுப்பினருக்கான Zealy Connect தொடர்பை நீக்க அனுமதிக்கிறது. இந்தப் பாதையை அழைத்த பிறகு, Zealy Connect அம்சங்களை மீண்டும் பயன்படுத்த பயனர் தனது கணக்கை மீண்டும் இணைக்க வேண்டும்.