এই নথিতে সার্ভার-সাইড ট্যাগিংয়ের জন্য API-এর রূপরেখা রয়েছে।
addEventCallback
একটি কলব্যাক ফাংশন নিবন্ধন করে যা একটি ইভেন্টের শেষে আহ্বান করা হবে। ইভেন্টের সমস্ত ট্যাগ কার্যকর হয়ে গেলে কলব্যাক ডাকা হবে। কলব্যাক দুটি মান পাস করা হয়: ধারকটির আইডি যা ফাংশনকে আহ্বান করে এবং একটি বস্তু যা ইভেন্ট সম্পর্কে তথ্য ধারণ করে।
যখন এই API একটি ট্যাগে ব্যবহার করা হয়, তখন এটি বর্তমান ইভেন্টের সাথে যুক্ত হয়। যখন এই APIটি একটি ক্লায়েন্টে ব্যবহার করা হয়, তখন এটি runContainer
API-এর bindToEvent
ফাংশন ব্যবহার করে একটি নির্দিষ্ট ইভেন্টে আবদ্ধ হতে হবে। আরো বিস্তারিত জানার জন্য উদাহরণ দেখুন.
বাক্য গঠন
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// Take some action based on the event data.
});
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
callback | ফাংশন | ইভেন্টের শেষে আহ্বান করার ফাংশন। |
eventData
অবজেক্টে নিম্নলিখিত ডেটা রয়েছে:
মূল নাম | টাইপ | বর্ণনা |
---|---|---|
tags | অ্যারে | ট্যাগ ডেটা অবজেক্টের একটি অ্যারে। ইভেন্টের সময় ফায়ার করা প্রতিটি ট্যাগের এই অ্যারেতে একটি এন্ট্রি থাকবে। ট্যাগ ডেটা অবজেক্টে ট্যাগের আইডি ( id ), এর এক্সিকিউশন স্ট্যাটাস ( status ) এবং এর এক্সিকিউশন টাইম ( executionTime ) থাকে। ট্যাগ ডেটাতে অতিরিক্ত ট্যাগ মেটাডেটাও অন্তর্ভুক্ত থাকবে যা ট্যাগে কনফিগার করা হয়েছে। |
একটি ক্লায়েন্ট মধ্যে:
const addEventCallback = require('addEventCallback');
const claimRequest = require('claimRequest');
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const logToConsole = require('logToConsole');
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');
claimRequest();
const events = extractEventsFromMpv1();
let eventsCompleted = 0;
events.forEach((evt, i) => {
runContainer(evt, /* onComplete= */ (bindToEvent) => {
bindToEvent(addEventCallback)((containerId, eventData) => {
logToConsole('Event Number: ' + i);
eventData.tags.forEach((tag) => {
logToConsole('Tag ID: ' + tag.id);
logToConsole('Tag Status: ' + tag.status);
logToConsole('Tag Execution Time: ' + tag.executionTime);
});
});
if (events.length === ++eventsCompleted) {
returnResponse();
}
});
});
একটি ট্যাগে:
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// This will be called at the end of the current event.
});
সংশ্লিষ্ট অনুমতি
callLater
অ্যাসিঙ্ক্রোনাসভাবে ঘটতে একটি ফাংশনে কলের সময় নির্ধারণ করে। বর্তমান কোড ফিরে আসার পরে ফাংশনটি কল করা হবে। এটি setTimeout(<function>, 0)
এর সমতুল্য।
উদাহরণ
const callLater = require('callLater');
const logToConsole = require('logToConsole');
callLater(() => {
logToConsole('Logged asynchronously');
});
বাক্য গঠন
callLater(function)
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
function | ফাংশন | কল করার ফাংশন। |
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
claimRequest
অনুরোধ দাবি করার জন্য একটি ক্লায়েন্টে এই API ব্যবহার করুন। একবার একটি অনুরোধ দাবি করা হলে, ধারকটি অতিরিক্ত ক্লায়েন্ট চালায় না।
একটি ট্যাগ বা ভেরিয়েবলে বলা হলে এই API একটি ব্যতিক্রম নিক্ষেপ করে। ক্লায়েন্ট রিটার্ন করার পরে কল করা হলে এই APIটি একটি ব্যতিক্রম ছুড়ে দেয় (যেমন যদি একটি async কলব্যাকে বলা হয় যেমন callLater
বা runContainer
onComplete
ফাংশনে)।
runContainer
API কল করার আগে একজন ক্লায়েন্টকে এই API ব্যবহার করে অনুরোধ দাবি করা উচিত।
উদাহরণ
const claimRequest = require('claimRequest');
claimRequest();
বাক্য গঠন
claimRequest();
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
computeEffectiveTldPlusOne
প্রদত্ত ডোমেন বা URL এর কার্যকর শীর্ষ-স্তরের ডোমেন + 1 (eTLD+1) প্রদান করে। eTLD+1 গণনা করা হয় পাবলিক সাফিক্স তালিকার নিয়মের বিপরীতে ডোমেনের মূল্যায়ন করে। eTLD+1 সাধারণত সর্বোচ্চ-স্তরের ডোমেন যেখানে আপনি একটি কুকি সেট করতে পারেন।
যদি আর্গুমেন্টটি নাল বা অনির্ধারিত হয়, তাহলে আর্গুমেন্টের মান অপরিবর্তিতভাবে ফেরত দেওয়া হয়। অন্যথায় যুক্তি একটি স্ট্রিং থেকে জোর করা হয়. যদি যুক্তিটি একটি বৈধ ডোমেন বা URL না হয়, তাহলে একটি ফাঁকা স্ট্রিং ফেরত দেওয়া হয়। সার্ভার যদি সর্বজনীন প্রত্যয় তালিকা আনতে অক্ষম হয়, তাহলে আর্গুমেন্ট মান অপরিবর্তিত ফেরত দেওয়া হয়।
উদাহরণ
const computeEffectiveTldPlusOne = require('computeEffectiveTldPlusOne');
// Returns 'example.co.uk'
computeEffectiveTldPlusOne('analytics.example.co.uk');
// Returns 'example.co.uk'
computeEffectiveTldPlusOne('https://analytics.example.co.uk/path');
বাক্য গঠন
computeEffectiveTldPlusOne(domainOrUrl);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
domainOrUrl | স্ট্রিং | একটি ডোমেন বা URL যার উপর eTLD+1 গণনা করতে হবে। |
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
createRegex
একটি নতুন regex দৃষ্টান্ত তৈরি করে এবং এটি একটি বস্তুতে মোড়ানো ফেরত দেয়। আপনি সরাসরি regex অ্যাক্সেস করতে পারবেন না। যাইহোক, আপনি এটি testRegex
API, String.replace()
, String.match()
, এবং String.search()
এ পাস করতে পারেন।
regex অবৈধ হলে বা সার্ভারে Re2 অনুপলব্ধ হলে null
ফেরত দেয়।
এই API একটি Re2 বাস্তবায়ন ব্যবহার করে। সার্ভার ডকার ইমেজ 2.0.0 বা পরবর্তী সংস্করণে হতে হবে।
উদাহরণ
const createRegex = require('createRegex');
const domainRegex = createRegex('\\w+\\.com', 'i');
// Returns '/foobar'
'example.com/foobar'.replace(domainRegex, '');
বাক্য গঠন
createRegex(pattern, flags);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
pattern | স্ট্রিং | রেগুলার এক্সপ্রেশনের টেক্সট। |
flags | স্ট্রিং | রেজেক্স তৈরির জন্য পতাকা ধারণকারী একটি ঐচ্ছিক স্ট্রিং। `g` (গ্লোবাল) এবং `i` (কেস উপেক্ষা করুন) সমর্থিত। অন্য সব চরিত্র নীরবে উপেক্ষা করা হয়. |
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
ন্যূনতম চিত্র সংস্করণ
decodeUri
প্রদত্ত URI-তে যেকোনো এনকোড করা অক্ষর ডিকোড করে। ডিকোড করা URI প্রতিনিধিত্ব করে এমন একটি স্ট্রিং প্রদান করে। অবৈধ ইনপুট দেওয়া হলে undefined
ফেরত দেয়।
উদাহরণ
const decodeUri = require('decodeUri');
const decodedUrl = decodeUri(data.encodedUrl);
if (decodedUrl) {
// ...
}
বাক্য গঠন
decodeUri(encoded_uri);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
encoded_uri | স্ট্রিং | একটি URI যা encodeUri() বা অন্য উপায়ে এনকোড করা হয়েছে। |
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
decodeUriComponent
প্রদত্ত URI কম্পোনেন্টে যেকোনো এনকোড করা অক্ষর ডিকোড করে। একটি স্ট্রিং প্রদান করে যা ডিকোড করা URI উপাদানকে উপস্থাপন করে। অবৈধ ইনপুট দেওয়া হলে undefined
ফেরত দেয়।
উদাহরণ
const decodeUriComponent = require('decodeUriComponent');
const decodedQuery = decodeUriComponent(data.query);
if (decodedQuery) {
// ...
}
বাক্য গঠন
decodeUriComponent(encoded_uri_component);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
encoded_uri_component | স্ট্রিং | একটি URI উপাদান যা encodeUriComponent() বা অন্য উপায়ে এনকোড করা হয়েছে। |
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
encodeUri
বিশেষ অক্ষর এড়িয়ে গিয়ে একটি এনকোডেড ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (URI) প্রদান করে। একটি স্ট্রিং প্রদান করে যা একটি URI হিসাবে এনকোড করা প্রদত্ত স্ট্রিংকে উপস্থাপন করে।
উদাহরণ
const encodeUri = require('encodeUri');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/' + encodeUri(pathInput));
বাক্য গঠন
encodeUri(uri);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
uri | স্ট্রিং | একটি সম্পূর্ণ ইউআরআই। |
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
encodeUriComponent
বিশেষ অক্ষর এড়িয়ে গিয়ে একটি এনকোডেড ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (URI) প্রদান করে। একটি স্ট্রিং প্রদান করে যা একটি URI হিসাবে এনকোড করা প্রদত্ত স্ট্রিংকে উপস্থাপন করে।
উদাহরণ
const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/?' + encodeUriComponent(queryInput));
বাক্য গঠন
encodeUriComponent(str);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
str | স্ট্রিং | একটি URI এর একটি উপাদান। |
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
extractEventsFromMpv1
ইউনিফাইড স্কিমা ফরম্যাটে ইভেন্টের তালিকায় একটি ইনকামিং মেজারমেন্ট প্রোটোকল V1 অনুরোধ অনুবাদ করে। নিষ্কাশিত ইভেন্টের তালিকা প্রদান করে। অনুরোধটি সঠিক বিন্যাসে না হলে একটি ত্রুটি নিক্ষেপ করে৷
উদাহরণ
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const isRequestMpv1 = require('isRequestMpv1');
if (isRequestMpv1()) {
const events = extractEventsFromMpv1();
for (let i = 0; i < events.length; ++i) {
const event = events[i];
// Process event.
}
}
বাক্য গঠন
extractEventsFromMpv1();
সংশ্লিষ্ট অনুমতি
read_request
অনুমতি প্রয়োজন। কমপক্ষে অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতি কনফিগার করা আবশ্যক:
-
body
-
query parameters
extractEventsFromMpv2
একটি ইনকামিং মেজারমেন্ট প্রোটোকল V2 অনুরোধকে ইউনিফাইড স্কিমা ফরম্যাটে ইভেন্টের তালিকায় অনুবাদ করে। নিষ্কাশিত ইভেন্টের তালিকা প্রদান করে। অনুরোধটি সঠিক বিন্যাসে না হলে একটি ত্রুটি নিক্ষেপ করে৷
উদাহরণ
const extractEventsFromMpv2 = require('extractEventsFromMpv2');
const isRequestMpv2 = require('isRequestMpv2');
if (isRequestMpv2()) {
const events = extractEventsFromMpv2();
for (let i = 0; i < events.length; ++i) {
const event = events[i];
// Process event.
}
}
বাক্য গঠন
extractEventsFromMpv2();
সংশ্লিষ্ট অনুমতি
read_request
অনুমতি প্রয়োজন। কমপক্ষে অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতি কনফিগার করা আবশ্যক:
-
body
-
query parameters
fromBase64
একটি base64-এনকোডেড স্ট্রিং ডিকোড করে। ইনপুট অবৈধ হলে undefined
ফেরত দেয়।
বাক্য গঠন
fromBase64(base64EncodedString);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
base64EncodedString | স্ট্রিং | Base64 এনকোডেড স্ট্রিং। |
উদাহরণ
const fromBase64 = require('fromBase64');
const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
// ...
}
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
generateRandom
প্রদত্ত পরিসরের মধ্যে একটি এলোমেলো সংখ্যা (পূর্ণসংখ্যা) প্রদান করে।
উদাহরণ
const generateRandom = require('generateRandom');
const randomValue = generateRandom(0, 10000000);
বাক্য গঠন
generateRandom(min, max);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
min | সংখ্যা | প্রত্যাবর্তিত পূর্ণসংখ্যার ন্যূনতম সম্ভাব্য মান (অন্তর্ভুক্ত)। |
max | সংখ্যা | প্রত্যাবর্তিত পূর্ণসংখ্যার সর্বাধিক সম্ভাব্য মান (অন্তর্ভুক্ত)। |
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
getAllEventData
ইভেন্ট ডেটার একটি অনুলিপি প্রদান করে।
বাক্য গঠন
getAllEventData();
সংশ্লিষ্ট অনুমতি
getClientName
বর্তমান ক্লায়েন্টের নাম ধারণ করে এমন একটি স্ট্রিং প্রদান করে।
বাক্য গঠন
getClientName();
সংশ্লিষ্ট অনুমতি
getContainerVersion
বর্তমান ধারক সম্পর্কে ডেটা ধারণকারী একটি বস্তু প্রদান করে। ফিরে আসা বস্তুর নিম্নলিখিত ক্ষেত্র থাকবে:
{
containerId: string,
debugMode: boolean,
environmentName: string,
environmentMode: boolean,
previewMode: boolean,
version: string,
}
উদাহরণ
const getContainerVersion = require('getContainerVersion');
const containerVersion = getContainerVersion();
const containerId = containerVersion['containerId'];
const isDebug = containerVersion['debugMode'];
বাক্য গঠন
getContainerVersion();
সংশ্লিষ্ট অনুমতি
getCookieValues
প্রদত্ত নামের সাথে সমস্ত কুকির মান ধারণকারী একটি অ্যারে প্রদান করে।
উদাহরণ
const getCookieValues = require('getCookieValues');
const lastVisit = getCookieValues('lastVisit')[0];
if (lastVisit) {
// ...
}
বাক্য গঠন
getCookieValues(name[, noDecode]);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
name | স্ট্রিং | কুকির নাম। |
noDecode | বুলিয়ান | true হলে, কুকির মান ফেরত দেওয়ার আগে ডিকোড করা হবে না। ডিফল্ট থেকে false । |
সংশ্লিষ্ট অনুমতি
getEventData
ইভেন্ট ডেটাতে প্রদত্ত পাথে মানের একটি অনুলিপি প্রদান করে। কোনো ইভেন্ট ডেটা না থাকলে বা প্রদত্ত পাথে কোনো মান না থাকলে undefined
ফেরত দেয়।
উদাহরণ
const getEventData = require('getEventData');
const campaignId = getEventData('campaign.id');
const itemId = getEventData('items.0.id');
const referrer = getEventData('page_referrer');
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
keyPath | যেকোনো | কী-এর পথ, যেখানে পাথের উপাদানগুলি বিন্দু দ্বারা পৃথক করা হয়। পথের উপাদানগুলি একটি বস্তুর কী বা একটি অ্যারের সূচক হতে পারে। যদি keyPath একটি স্ট্রিং না হয়, তবে এটি একটি স্ট্রিংয়ে জোরপূর্বক করা হয়। |
বাক্য গঠন
getEventData(keyPath);
সংশ্লিষ্ট অনুমতি
getGoogleAuth
একটি অনুমোদন বস্তু প্রদান করে যা sendHttpGet
বা sendHttpRequest
এর সাথে ব্যবহার করা হলে, Google ক্লাউড API-এর জন্য একটি অনুমোদন শিরোনাম অন্তর্ভুক্ত করবে। এই API সার্ভার পরিবেশ থেকে স্বয়ংক্রিয়ভাবে শংসাপত্র খুঁজে পেতে অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র ব্যবহার করে।
উদাহরণ
const getGoogleAuth = require('getGoogleAuth');
const logToConsole = require('logToConsole');
const sendHttpGet = require('sendHttpGet');
const auth = getGoogleAuth({
scopes: ['https://www.googleapis.com/auth/datastore']
});
sendHttpGet(
'https://firestore.googleapis.com/v1/projects/my-project/databases/(default)/documents/collection/document',
{authorization: auth}
).then((result) => {
if (result.statusCode >= 200 && result.statusCode < 300) {
logToConsole('Result: ' + result.body);
data.gtmOnSuccess();
} else {
data.gtmOnFailure();
}
});
বাক্য গঠন
getGoogleAuth(scopes);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
scopes | অ্যারে | অ্যাক্সেসের অনুরোধ করার জন্য OAuth 2.0 Google API স্কোপের একটি অ্যারে। |
সংশ্লিষ্ট অনুমতি
use_google_credentials
অনুমতি প্রয়োজন। অনুমতি অবশ্যই এক বা একাধিক অনুমোদিত স্কোপের সাথে কনফিগার করা উচিত।
getGoogleScript
Google স্ক্রিপ্টের একটি পূর্বনির্ধারিত সেট থেকে একটি সংস্থান পুনরুদ্ধার করে এবং স্ক্রিপ্ট এবং সংশ্লিষ্ট ক্যাশিং মেটাডেটার সাথে একটি প্রতিশ্রুতি প্রদান করে।
প্রতিশ্রুতি দুটি কী ধারণকারী বস্তুর সমাধান করবে: script
এবং metadata
। অনুরোধ ব্যর্থ হলে, প্রতিশ্রুতি একটি reason
কী দিয়ে প্রত্যাখ্যান করা হবে।
metadata
অবজেক্টে রিসোর্স রেসপন্স হেডারের উপর ভিত্তি করে নিম্নলিখিত ক্যাশিং মেটাডেটা থাকবে; প্রতিটি ক্ষেত্র শুধুমাত্র উপস্থিত হবে যদি সংশ্লিষ্ট শিরোনামটি সম্পদ প্রতিক্রিয়াতে উপস্থিত থাকে।
{
'cache-control': string,
'expires': string,
'last-modified': string,
}
উদাহরণ
const getGoogleScript = require('getGoogleScript');
getGoogleScript('ANALYTICS').then((result) => {
// Operate on result.script and result.metadata here.
});
বাক্য গঠন
getGoogleScript(script[, options]);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
script | স্ট্রিং | স্ক্রিপ্টের নাম। সমর্থিত স্ক্রিপ্টগুলি হল 'ANALYTICS' , 'GTAG' , এবং 'GTM' ।'ANALYTICS' বিকল্পটি https://www.google-analytics.com/analytics.js থেকে Google Analytics স্ক্রিপ্ট নিয়ে আসে।'GTAG' বিকল্পটি https://www.googletagmanager.com/gtag/js থেকে গ্লোবাল সাইট ট্যাগ (gtag.js) স্ক্রিপ্ট নিয়ে আসে।'GTM' বিকল্পটি https://www.googletagmanager.com/gtm.js থেকে Google ট্যাগ ম্যানেজার স্ক্রিপ্ট নিয়ে আসে। |
options | বস্তু | ঐচ্ছিক অনুরোধ বিকল্প. সমর্থিত বিকল্পগুলির জন্য নীচে দেখুন। |
অপশন
অপশন | টাইপ | বর্ণনা |
---|---|---|
id | স্ট্রিং | gtag পরিমাপ আইডি সহ 'GTAG' এবং ওয়েব কন্টেইনার আইডি (যেমন GTM-XXXX) সহ 'GTM' এর জন্য প্রযোজ্য। |
debug | যেকোনো | সত্য হলে, পরিমাপ স্ক্রিপ্টের ডিবাগ সংস্করণের অনুরোধ করে এবং ফেরত দেয়। |
timeout | সংখ্যা | মিলিসেকেন্ডে অনুরোধের সময়সীমা; অ-ইতিবাচক মান উপেক্ষা করা হয়. অনুরোধের সময় শেষ হলে, স্ক্রিপ্ট মানের জন্য undefined এবং মেটাডেটা অবজেক্টের জন্য {} সহ কলব্যাক আহ্বান করা হবে। |
অচেনা বিকল্প কী উপেক্ষা করা হয়.
সংশ্লিষ্ট অনুমতি
send_http
অনুমতি প্রয়োজন। কমপক্ষে অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতি কনফিগার করা আবশ্যক:
- Google ডোমেনকে অনুমতি দিন
getRemoteAddress
আইপি ঠিকানার একটি স্ট্রিং উপস্থাপনা প্রদান করে যেখানে অনুরোধটি এসেছে, যেমন 12.345.67.890
IPv4 এর জন্য বা 2001:0db8:85a3:0:0:8a2e:0370:7334
IPv6-এর জন্য অনুরোধ শিরোনাম যেমন ফরওয়ার্ডেড এবং এক্স-ফরওয়ার্ড- পড়ে জন্য দ্রষ্টব্য: এই APIটি মূল আইপি আবিষ্কার করার জন্য একটি সর্বোত্তম প্রচেষ্টা করে, কিন্তু এটি নিশ্চিত করতে পারে না যে ফলাফলটি সঠিক।
বাক্য গঠন
getRemoteAddress();
সংশ্লিষ্ট অনুমতি
read_request
অনুমতি প্রয়োজন। কমপক্ষে অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতি কনফিগার করা আবশ্যক:
- হেডার
Forwarded
এবংX-Forwarded-For
- দূরবর্তী আইপি ঠিকানা
getRequestBody
একটি স্ট্রিং হিসাবে অনুরোধের মূল অংশটি প্রদান করে, যদি উপস্থিত থাকে, বা অন্যথায় undefined
।
বাক্য গঠন
getRequestBody();
সংশ্লিষ্ট অনুমতি
getRequestHeader
একটি স্ট্রিং হিসাবে নামযুক্ত অনুরোধ শিরোনামের মান প্রদান করে, যদি উপস্থিত থাকে, বা অন্যথায় undefined
। শিরোনামটি পুনরাবৃত্তি হলে, প্রত্যাবর্তিত মানগুলি ', '
এর সাথে একত্রিত হয়।
উদাহরণ
const getRequestHeader = require('getRequestHeader');
const host = getRequestHeader('host');
বাক্য গঠন
getRequestHeader(headerName);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
headerName | স্ট্রিং | হেডারের নাম। এই মান কেস-সংবেদনশীল। |
সংশ্লিষ্ট অনুমতি
getRequestMethod
একটি স্ট্রিং হিসাবে অনুরোধের পদ্ধতি, যেমন 'GET'
বা 'POST'
প্রদান করে।
উদাহরণ
const getRequestMethod = require('getRequestMethod');
if (getRequestMethod() === 'POST') {
// Handle the POST request here.
}
বাক্য গঠন
getRequestMethod();
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
getRequestPath
ক্যোয়ারী স্ট্রিং ছাড়াই রিকোয়েস্ট পাথ ফেরত দেয়। উদাহরণস্বরূপ, যদি URL '/foo?id=123'
হয়, তাহলে এটি '/foo'
প্রদান করে। স্বয়ংক্রিয়ভাবে পাথ থেকে সার্ভার কন্টেইনার URL উপসর্গ ছিন্ন করে। উদাহরণস্বরূপ, যদি সার্ভার কন্টেইনার URL হয় https://example.com/analytics
এবং অনুরোধের পথ '/analytics/foo'
হয়, তাহলে এটি '/foo'
প্রদান করে।
উদাহরণ
const getRequestPath = require('getRequestPath');
const requestPath = getRequestPath();
if (requestPath === '/') {
// Handle a request for the root path.
}
বাক্য গঠন
getRequestPath();
সংশ্লিষ্ট অনুমতি
getRequestQueryParameter
একটি স্ট্রিং হিসাবে নামযুক্ত ক্যোয়ারী স্ট্রিং প্যারামিটারের ডিকোড করা মান প্রদান করে, বা প্যারামিটারটি উপস্থিত না থাকলে undefined
। যদি প্যারামিটারটি ক্যোয়ারী স্ট্রিং-এ পুনরাবৃত্তি করা হয়, ক্যোয়ারী স্ট্রিং-এ প্রদর্শিত প্রথম মানটি ফেরত দেওয়া হবে।
উদাহরণ
const getRequestQueryParameter = require('getRequestQueryParameter');
const query = getRequestQueryParameter('query');
if (query) {
// Process query here.
}
বাক্য গঠন
getRequestQueryParameter(name);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
name | স্ট্রিং | ক্যোয়ারী প্যারামিটারের নাম। |
সংশ্লিষ্ট অনুমতি
getRequestQueryParameters
ইনকামিং HTTP অনুরোধের ক্যোয়ারী প্যারামিটারগুলিকে একটি অবজেক্ট হিসাবে ফেরত দেয় যা সংশ্লিষ্ট মান বা মানগুলির সাথে কোয়েরি প্যারামিটার নামগুলিকে ম্যাপ করে৷ পরামিতি নাম এবং মান ডিকোড করা হয়.
উদাহরণ
const getRequestQueryParameters = require('getRequestQueryParameters');
const queryParameters = getRequestQueryParameters();
if (queryParameters['search']) {
// Handle the search query here.
const maxResults = queryParameters['max_results'];
}
বাক্য গঠন
getRequestQueryParameters();
সংশ্লিষ্ট অনুমতি
getRequestQueryString
অনুরোধের ক্যোয়ারীটিকে একটি স্ট্রিং হিসাবে, অগ্রণী প্রশ্ন চিহ্ন ছাড়া, বা একটি খালি স্ট্রিং প্রদান করে যদি অনুরোধের URL-এ একটি ক্যোয়ারী স্ট্রিং অন্তর্ভুক্ত না থাকে৷
উদাহরণ
const getRequestQueryString = require('getRequestQueryString');
const queryString = getRequestQueryString();
if (queryString !== '') {
// Handle the query string.
}
বাক্য গঠন
getRequestQueryString();
সংশ্লিষ্ট অনুমতি
getTimestamp
অবচয়। GetTimestampMillis পছন্দ করুন।
Date.now()
দ্বারা প্রত্যাবর্তিত হিসাবে ইউনিক্স যুগ থেকে মিলিসেকেন্ডে বর্তমান সময়কে প্রতিনিধিত্ব করে এমন একটি সংখ্যা প্রদান করে।
বাক্য গঠন
getTimestamp();
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
getTimestampMillis
Date.now()
দ্বারা প্রত্যাবর্তিত হিসাবে ইউনিক্স যুগ থেকে মিলিসেকেন্ডে বর্তমান সময়কে প্রতিনিধিত্ব করে এমন একটি সংখ্যা প্রদান করে।
বাক্য গঠন
getTimestampMillis();
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
getType
প্রদত্ত মানের প্রকার বর্ণনা করে একটি স্ট্রিং প্রদান করে।
ইনপুট টাইপ | ফেরত মান |
---|---|
স্ট্রিং | 'string' |
সংখ্যা | 'number' |
বুলিয়ান | 'boolean' |
খালি | 'null' |
অনির্ধারিত | 'undefined' |
অ্যারে | 'array' |
অবজেক্ট | 'object' |
ফাংশন | 'function' |
উদাহরণ
const getType = require('getType');
const type = getType(value);
if (type === 'string') {
// Handle string input.
} else if (type === 'number') {
// Handle numeric input.
} else {
logToConsole('Unsupported input type: ', type);
}
বাক্য গঠন
getType(value);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
value | যেকোনো | ইনপুট মান। |
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
hmacSha256
SHA-256 এর সাথে হ্যাশ-ভিত্তিক বার্তা প্রমাণীকরণ কোড (HMAC) ব্যবহার করে একটি এনকোড করা স্বাক্ষর গণনা করে৷ base64url
এনকোডিং-এ ডিফল্ট।
এই API ব্যবহার করতে, সার্ভারে SGTM_CREDENTIALS
এনভায়রনমেন্ট ভেরিয়েবলকে নিম্নলিখিত বিন্যাস সহ একটি UTF-8 এনকোড করা JSON কী ফাইলের পাথে সেট করুন:
{
"key1": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5",
"key2": "OTg3NjU0MzIxMHp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh",
...
}
মান হল base64-এনকোডেড HMAC কী।
উদাহরণ
const hmacSha256 = require('hmacSha256');
const toBase64 = require('toBase64');
const header = toBase64('{"alg":"HS256","typ":"JWT"}', {urlEncoding: true});
const claim = toBase64('{"sub":"1234567890","iat":1698164946}', {urlEncoding: true});
const signature = hmacSha256(header + '.' + claim, 'key1');
const jwt = header + "." + claim + '.' + signature;
বাক্য গঠন
hmacSha256(data, keyId, options)
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
data | স্ট্রিং | HMAC মান গণনা করার জন্য ডেটা। |
keyId | স্ট্রিং | ব্যবহার করার জন্য কী উল্লেখ করে JSON কী ফাইল থেকে একটি কী আইডি। |
options | বস্তু | ঐচ্ছিক API কনফিগারেশন। (নীচের বিকল্পগুলি দেখুন।) |
অপশন
অপশন | টাইপ | বর্ণনা |
---|---|---|
outputEncoding | স্ট্রিং | রিটার্ন মানের জন্য এনকোডিং বিন্যাস নির্দিষ্ট করে। সমর্থিত ফরম্যাটগুলি হল hex , base64 , বা base64url । নির্দিষ্ট না থাকলে base64url এ ডিফল্ট। |
সংশ্লিষ্ট অনুমতি
ন্যূনতম চিত্র সংস্করণ
isRequestMpv1
ইনকামিং অনুরোধটি একটি পরিমাপ প্রোটোকল V1 অনুরোধ হলে true
বা অন্যথায় false
দেখায়।
উদাহরণ
const isRequestMpv1 = require('isRequestMpv1');
if (isRequestMpv1()) {
// Handle Measurement Protocol V1 request.
const events = extractEventsFromMpv1();
}
বাক্য গঠন
isRequestMpv1();
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
isRequestMpv2
ইনকামিং অনুরোধটি একটি পরিমাপ প্রোটোকল V2 অনুরোধ হলে true
বা অন্যথায় false
দেখায়।
উদাহরণ
const isRequestMpv2 = require('isRequestMpv2');
if (isRequestMpv2()) {
// Handle Measurement Protocol V2 request.
const events = extractEventsFromMpv2();
}
বাক্য গঠন
isRequestMpv2();
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
logToConsole
কনসোলে এর যুক্তি(গুলি) লগ করে।
এই লগগুলি Google ক্লাউড কনসোলে লগ এক্সপ্লোরারের মধ্যে দৃশ্যমান। এই API দ্বারা তৈরি লগ এন্ট্রি দেখতে লগ এক্সপ্লোরার থেকে logName =~ "stdout"
ক্যোয়ারী চালান।
উদাহরণ
const logToConsole = require('logToConsole');
const that = 123;
const those = { ... };
logToConsole('that is: ', that, ' and those is: ', those);
বাক্য গঠন
logToConsole(argument1[, argument2, ...]);
পরামিতি
এপিআই এক বা একাধিক আর্গুমেন্ট নেয়, যার প্রতিটি একটি স্ট্রিং-এ রূপান্তরিত হয়, যদি প্রয়োজন হয়, এবং কনসোলে লগ করা হয়।
সংশ্লিষ্ট অনুমতি
makeInteger
প্রদত্ত মানটিকে একটি সংখ্যায় (পূর্ণসংখ্যা) রূপান্তর করে।
বাক্য গঠন
makeInteger(value);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
value | যেকোন ধরণের | রূপান্তর করার মান। |
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
makeNumber
প্রদত্ত মানটিকে একটি সংখ্যায় রূপান্তর করে।
বাক্য গঠন
makeNumber(value);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
value | যেকোন ধরণের | রূপান্তর করার মান। |
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
makeString
একটি স্ট্রিং হিসাবে প্রদত্ত মান প্রদান করে।
বাক্য গঠন
makeString(value);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
value | যেকোন ধরণের | রূপান্তর করার মান। |
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
makeTableMap
দুটি কলাম সহ একটি সাধারণ টেবিল অবজেক্টকে একটি Map
রূপান্তর করে। এটি দুটি কলাম সহ একটি SIMPLE_TABLE
টেমপ্লেট ক্ষেত্রকে আরও পরিচালনাযোগ্য বিন্যাসে পরিবর্তন করতে ব্যবহৃত হয়।
উদাহরণস্বরূপ, এই ফাংশনটি একটি টেবিল অবজেক্টকে রূপান্তর করতে পারে:
[
{'key': 'k1', 'value': 'v1'},
{'key': 'k2', 'value': 'v2'}
]
একটি মানচিত্রে:
{
'k1': 'v1',
'k2': 'v2'
}
একটি অবজেক্ট ফেরত দেয়: কী-মান জোড়ার রূপান্তরিত Map
এতে যোগ করা হয়েছে, অথবা অন্যথায় null
।
বাক্য গঠন
makeTableMap(tableObj, keyColumnName, valueColumnName);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
tableObj | তালিকা | রূপান্তর করার জন্য টেবিল অবজেক্ট। এটি মানচিত্রের একটি তালিকা যেখানে প্রতিটি Map টেবিলের একটি সারি প্রতিনিধিত্ব করে। সারি অবজেক্টের প্রতিটি সম্পত্তির নাম হল কলামের নাম, এবং সম্পত্তির মান হল সারির কলামের মান। |
keyColumnName | স্ট্রিং | কলামের নাম যার মান রূপান্তরিত Map কী হয়ে যাবে। |
valueColumnName | স্ট্রিং | কলামের নাম যার মান রূপান্তরিত Map মান হয়ে যাবে। |
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
parseUrl
URL
অবজেক্টের অনুরূপ একটি প্রদত্ত URL-এর সমস্ত উপাদান অংশ ধারণ করে এমন একটি বস্তু প্রদান করে।
এই API কোনো বিকৃত URL এর জন্য undefined
ফিরে আসবে। সঠিকভাবে ফরম্যাট করা URL-এর জন্য, URL স্ট্রিং-এ উপস্থিত না থাকা ক্ষেত্রগুলির একটি খালি স্ট্রিংয়ের মান থাকবে, অথবা searchParams
এর ক্ষেত্রে, একটি খালি বস্তু।
ফিরে আসা বস্তুর নিম্নলিখিত ক্ষেত্র থাকবে:
{
href: string,
origin: string,
protocol: string,
username: string,
password: string,
host: string,
hostname: string,
port: string,
pathname: string,
search: string,
searchParams: Object<string, (string|Array)>,
hash: string,
}
উদাহরণ
const parseUrl = require('parseUrl');
const urlObject = parseUrl('https://abc:xyz@example.com:8080/foo?param=val%2Cue#bar');
বাক্য গঠন
parseUrl(url);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
url | স্ট্রিং | সম্পূর্ণ ইউআরএল যা পার্স করা হবে। |
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
returnResponse
setCookie , setPixelResponse , setResponseBody , setResponseHeader , এবং setResponseStatus সহ প্রতিক্রিয়া পরিবর্তন করে এমন API ব্যবহার করে পূর্বে অন্যান্য টেমপ্লেট দ্বারা সেট করা প্রতিক্রিয়াটিকে ফ্লাশ করে। একটি HTTP স্ট্যাটাস কোড 200 ডিফল্ট, খালি বডি, এবং কোন হেডার নেই।
ক্লায়েন্ট টেমপ্লেট থেকে এই API ব্যবহার করা বাঞ্ছনীয়।
বাক্য গঠন
returnResponse();
উদাহরণ
runContainer
উদাহরণ দেখুন।
সংশ্লিষ্ট অনুমতি
runContainer
একটি ইভেন্টের সুযোগে কন্টেইনার লজিক (ভেরিয়েবল, ট্রিগার, ট্যাগ) চালায়। কন্টেইনার এক্সিকিউশনের সময় যদি এই API কল করা হয়, তাহলে কন্টেইনার আবার চালানো হবে।
onComplete
এবং onStart
কলব্যাকগুলি bindToEvent
নামে একটি ফাংশন গ্রহণ করে। ইভেন্টের প্রসঙ্গে একটি API চালানোর জন্য bindToEvent
ব্যবহার করুন। আরো বিস্তারিত জানার জন্য addEventCallback উদাহরণ দেখুন।
ক্লায়েন্ট টেমপ্লেট থেকে এই API ব্যবহার করা বাঞ্ছনীয়।
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');
// Runs the container with a simple pageview event and then returns a response.
runContainer({'event_name': 'pageview'}, () => returnResponse());
বাক্য গঠন
runContainer(event, onComplete, onStart);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
event | বস্তু | ঘটনা পরামিতি. |
onComplete | ফাংশন | একটি কলব্যাক যা সমস্ত ট্যাগ ফায়ারিং শেষ হওয়ার পরে আহ্বান করা হয়৷ |
onStart | ফাংশন | একটি কলব্যাক যা অবিলম্বে আহ্বান করা হয়, ট্যাগগুলি ফায়ারিং শুরু করার আগে৷ |
সংশ্লিষ্ট অনুমতি
sendEventToGoogleAnalytics
Google Analytics-এ সাধারণ ইভেন্ট ডেটা ব্যবহার করে একটি একক ইভেন্ট পাঠায় এবং একটি প্রতিশ্রুতি প্রদান করে যা একটি location
কী সহ একটি বস্তুর সমাধান করে বা একটি reason
কী সহ একটি বস্তুকে প্রত্যাখ্যান করে। গন্তব্য, ইউনিভার্সাল অ্যানালিটিক্স বা Google Analytics 4, ইভেন্ট ডেটার পরিমাপ আইডির উপর ভিত্তি করে।
location
ক্ষেত্রটি location
শিরোনামে সেট করা হয়, যদি উপস্থিত থাকে।
উদাহরণ
const logToConsole = require('logToConsole');
const sendEventToGoogleAnalytics = require('sendEventToGoogleAnalytics');
const setResponseHeader = require('setResponseHeader');
const setResponseStatus = require('setResponseStatus');
// Sends an event to Google Analytics and returns failure if the request did not
// succeed. Additionally, if the request resulted in a redirect request, the
// code nominates a redirect response to be returned.
sendEventToGoogleAnalytics(event).then((response) => {
if (response.location) {
setResponseHeader('location', response.location);
setResponseStatus(302);
} else {
setResponseStatus(200);
}
data.gtmOnSuccess();
}).catch((error) => {
logToConsole(error.reason);
setResponseStatus(500);
data.gtmOnFailure();
});
বাক্য গঠন
sendEventToGoogleAnalytics(event);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
event | বস্তু | ইউনিফাইড স্কিমা ফরম্যাটে ইভেন্ট। |
সংশ্লিষ্ট অনুমতি
send_http
অনুমতি প্রয়োজন। কমপক্ষে অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতি কনফিগার করা আবশ্যক:
- Google ডোমেনকে অনুমতি দিন
sendHttpGet
নির্দিষ্ট URL-এ একটি HTTP GET অনুরোধ করে, এবং একটি প্রতিশ্রুতি প্রদান করে যা অনুরোধ সম্পূর্ণ হলে বা সময় শেষ হয়ে গেলে ফলাফলের সাথে সমাধান হয়।
সমাধান করা ফলাফল হল তিনটি কী সমন্বিত একটি বস্তু: statusCode
, headers
, এবং body
। যদি অনুরোধ ব্যর্থ হয় (যেমন অবৈধ URL, হোস্টের কোনো রুট, SSL আলোচনা ব্যর্থতা, ইত্যাদি), প্রতিশ্রুতিটি প্রত্যাখ্যান করা হবে: {reason: 'failed'}
। যদি timeout
বিকল্প সেট করা থাকে এবং অনুরোধের সময় শেষ হয়ে যায়, তাহলে প্রতিশ্রুতিটি প্রত্যাখ্যান করা হবে: {reason: 'timed_out'}
উদাহরণ
const sendHttpGet = require('sendHttpGet');
// Returns the response body as the value for a variable.
return sendHttpGet('https://example.com/item/' + data.itemId, {
headers: {key: 'value'},
timeout: 500,
}).then((result) => result.body, () => undefined);
বাক্য গঠন
sendHttpGet(url[, options]);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
url | স্ট্রিং | অনুরোধ করা URL. |
options | বস্তু | ঐচ্ছিক অনুরোধ বিকল্প. (নীচের বিকল্পগুলি দেখুন।) |
অপশন
অপশন | টাইপ | বর্ণনা |
---|---|---|
headers | স্ট্রিং | অতিরিক্ত অনুরোধ শিরোনাম. |
timeout | সংখ্যা | টাইমআউট, মিলিসেকেন্ডে, অনুরোধ বাতিল হওয়ার আগে। ডিফল্ট 15000 । |
authorization | বস্তু | googleapis.com এ অনুরোধ করার সময় অনুমোদনের শিরোনাম অন্তর্ভুক্ত করার জন্য getGoogleAuth এ কল থেকে ঐচ্ছিক অনুমোদনের বস্তু। |
সংশ্লিষ্ট অনুমতি
sendHttpRequest
নির্দিষ্ট URL-এ একটি HTTP অনুরোধ করে এবং একটি প্রতিশ্রুতি প্রদান করে যা অনুরোধ সম্পূর্ণ হলে বা সময় শেষ হয়ে গেলে প্রতিক্রিয়ার সাথে সমাধান হয়।
সমাধান করা ফলাফল হল তিনটি কী সমন্বিত একটি বস্তু: statusCode
, headers
, এবং body
। যদি অনুরোধ ব্যর্থ হয় (যেমন অবৈধ URL, হোস্টের কোনো রুট, SSL আলোচনা ব্যর্থতা, ইত্যাদি), প্রতিশ্রুতিটি প্রত্যাখ্যান করা হবে: {reason: 'failed'}
। যদি timeout
বিকল্প সেট করা থাকে এবং অনুরোধের সময় শেষ হয়ে যায়, তাহলে প্রতিশ্রুতিটি প্রত্যাখ্যান করা হবে: {reason: 'timed_out'}
উদাহরণ
const sendHttpRequest = require('sendHttpRequest');
const setResponseBody = require('setResponseBody');
const setResponseHeader = require('setResponseHeader');
const setResponseStatus = require('setResponseStatus');
const postBody = 'interaction=click&campaign=promotion&medium=email';
// Sends a POST request and nominates response based on the response to the POST
// request.
sendHttpRequest('https://example.com/collect', {
headers: {key: 'value'},
method: 'POST',
timeout: 500,
}, postBody).then((result) => {
setResponseStatus(result.statusCode);
setResponseBody(result.body);
setResponseHeader('cache-control', result.headers['cache-control']);
});
বাক্য গঠন
sendHttpRequest(url[, options[, body]]);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
url | স্ট্রিং | অনুরোধ করা URL. |
options | বস্তু | ঐচ্ছিক অনুরোধ বিকল্প. (নীচের বিকল্পগুলি দেখুন।) |
body | স্ট্রিং | ঐচ্ছিক অনুরোধ শরীর. |
অপশন
অপশন | টাইপ | বর্ণনা |
---|---|---|
headers | স্ট্রিং | অতিরিক্ত অনুরোধ শিরোনাম. |
method | বস্তু | অনুরোধের পদ্ধতি। GET ডিফল্ট। |
timeout | সংখ্যা | অনুরোধ বাতিল হওয়ার আগে টাইমআউট, মিলিসেকেন্ডে। ডিফল্ট 15000 । |
authorization | বস্তু | googleapis.com এ অনুরোধ করার সময় অনুমোদনের শিরোনাম অন্তর্ভুক্ত করার জন্য getGoogleAuth এ কল থেকে ঐচ্ছিক অনুমোদনের বস্তু। |
সংশ্লিষ্ট অনুমতি
sendPixelFromBrowser
একটি <img>
ট্যাগ হিসাবে প্রদত্ত URL লোড করার জন্য ব্রাউজারে একটি কমান্ড পাঠায়। এই কমান্ড প্রোটোকলটি GA4 এবং Google Analytics: GA ইভেন্ট ওয়েব ট্যাগের জন্য Google ট্যাগে সমর্থিত। আপনাকে অবশ্যই সার্ভার কন্টেইনার URL কনফিগার করতে হবে। আরো বিস্তারিত জানার জন্য নির্দেশাবলী দেখুন.
যদি ইনকামিং অনুরোধ কমান্ড প্রোটোকল সমর্থন না করে, বা প্রতিক্রিয়া ইতিমধ্যে ফ্লাশ করা হয়েছে যদি এই API false
প্রদান করে। অন্যথায় এই API true
প্রদান করে।
উদাহরণ:
const sendPixelFromBrowser = require('sendPixelFromBrowser');
sendPixelFromBrowser('https://example.com/?id=123');
বাক্য গঠন
sendPixelFromBrowser(url)
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
url | স্ট্রিং | ব্রাউজারে পাঠানোর জন্য ইউআরএল। |
সংশ্লিষ্ট অনুমতি
setCookie
নির্দিষ্ট বিকল্পগুলির সাথে একটি কুকি সেট বা মুছে দেয়।
একটি কুকি মুছে ফেলার জন্য, একজনকে অবশ্যই একই পথ এবং ডোমেন সহ একটি কুকি সেট করতে হবে যেটি দিয়ে কুকি তৈরি করা হয়েছিল এবং এটিকে একটি মেয়াদ শেষ হওয়ার মান নির্ধারণ করতে হবে যা অতীতে ছিল, যেমন "Thu, 01 Jan 1970 00:00:00 GMT"
।
দ্রষ্টব্য যে ক্লায়েন্টের কাছে প্রতিক্রিয়া ফেরত পাঠানোর জন্য returnResponse কল করতে হবে।
উদাহরণ
const setCookie = require('setCookie');
// Sets an httpOnly cookie with a max-age of 3600.
setCookie('cookieName', 'cookieValue', {'max-age': 3600, httpOnly: true});
বাক্য গঠন
setCookie(name, value[, options[, noEncode]]);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
name | স্ট্রিং | কুকির নাম। নামটি কেস-সংবেদনশীল। |
value | স্ট্রিং | কুকি মান. |
options | বস্তু | ঐচ্ছিক কুকি বৈশিষ্ট্য: ডোমেন , মেয়াদ শেষ , ফলব্যাকডোমেন , শুধুমাত্র http , সর্বোচ্চ , পথ , নিরাপদ , এবং একইসাইট ৷ (নীচে বিকল্পগুলি দেখুন।) |
noEncode | বুলিয়ান | সত্য হলে, কুকি মান এনকোড করা হবে না। ডিফল্ট থেকে false । |
ডোমেইন: যে হোস্টে কুকি পাঠানো হবে। যদি বিশেষ মান 'অটো'তে সেট করা হয়, তাহলে হোস্ট স্বয়ংক্রিয়ভাবে নিম্নলিখিত কৌশল ব্যবহার করে গণনা করা হবে:
-
Forwarded
হেডারের eTLD+1, যদি উপস্থিত থাকে। -
X-Forwarded-Host
হেডারের eTLD+1, যদি উপস্থিত থাকে। -
Host
হেডারের eTLD+1।
-
মেয়াদ শেষ হয় : কুকির সর্বোচ্চ জীবনকাল। এটি অবশ্যই একটি UTC-ফরম্যাট করা তারিখের স্ট্রিং, যেমন "শনি, 26 অক্টোবর 1985 08:21:00 GMT"। যদি
expires
এবংmax-age
উভয়ই সেট করা থাকে,max-age
অগ্রাধিকার থাকে।httpশুধু :
true
হলে জাভাস্ক্রিপ্টকে কুকি অ্যাক্সেস করা নিষিদ্ধ করে।সর্বোচ্চ বয়স : কুকির মেয়াদ শেষ না হওয়া পর্যন্ত সেকেন্ডের সংখ্যা। একটি শূন্য বা ঋণাত্মক সংখ্যা অবিলম্বে কুকি মেয়াদ শেষ হবে. যদি
expires
এবংmax-age
উভয়ই সেট করা থাকে,max-age
অগ্রাধিকার থাকে।path : একটি পাথ যা অনুরোধ করা URL-এ থাকা আবশ্যক, অথবা ব্রাউজার কুকি হেডার পাঠাবে না।
নিরাপদ : যদি
true
সেট করা হয়, কুকি শুধুমাত্র সার্ভারে পাঠানো হয় যখন একটিhttps:
endpoint থেকে অনুরোধ করা হয়।sameSite : দাবি করে যে একটি কুকি ক্রস-অরিজিন অনুরোধের সাথে পাঠানো উচিত নয়।
'strict'
,'lax'
, বা'none'
হতে হবে।
সংশ্লিষ্ট অনুমতি
setPixelResponse
একটি 1x1 GIF-এ প্রতিক্রিয়া বডি সেট করে, কন্টেন্ট-টাইপ হেডারকে 'ইমেজ/gif'-এ সেট করে, ক্যাশিং হেডার সেট করে যাতে ব্যবহারকারী এজেন্টরা প্রতিক্রিয়া ক্যাশে না করে, এবং প্রতিক্রিয়া স্থিতি 200-এ সেট করে।
দ্রষ্টব্য যে ক্লায়েন্টের কাছে প্রতিক্রিয়া ফেরত পাঠানোর জন্য returnResponse কল করতে হবে।
বাক্য গঠন
setPixelResponse();
সংশ্লিষ্ট অনুমতি
access_response
অনুমতির প্রয়োজন। কমপক্ষে অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতি কনফিগার করা আবশ্যক:
-
headers
- নিম্নলিখিত কীগুলির অনুমতি দিতে হবে-
content-type
-
cache-control
-
expires
-
pragma
-
-
body
-
status
setResponseBody
যুক্তিতে প্রতিক্রিয়ার মূল অংশ সেট করে।
দ্রষ্টব্য যে ক্লায়েন্টের কাছে প্রতিক্রিয়া ফেরত পাঠানোর জন্য returnResponse কল করতে হবে।
বাক্য গঠন
setResponseBody(body[, encoding]);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
body | স্ট্রিং | রেসপন্স বডি হিসেবে সেট করা মান। |
encoding | স্ট্রিং | রেসপন্স বডির ক্যারেক্টার এনকোডিং (ডিফল্ট 'utf8' )। সমর্থিত মানগুলির মধ্যে রয়েছে 'ascii' , 'utf8' , 'utf16le' , 'ucs2' , 'base64' , 'latin1' , 'binary' , এবং 'hex' । |
সংশ্লিষ্ট অনুমতি
access_response
অনুমতির প্রয়োজন। কমপক্ষে অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতি কনফিগার করা আবশ্যক:
-
body
setResponseHeader
প্রতিক্রিয়াতে একটি শিরোনাম সেট করে যা ফেরত দেওয়া হবে। যদি এই নামের একটি শিরোনাম (কেস-সংবেদনশীল) পূর্বে এই API দ্বারা সেট করা থাকে, তাহলে পরবর্তী কলটি পূর্বের কলার দ্বারা সেট করা মানটিকে ওভাররাইট বা সাফ করবে।
দ্রষ্টব্য যে ক্লায়েন্টের কাছে প্রতিক্রিয়া ফেরত পাঠানোর জন্য returnResponse কল করতে হবে।
বাক্য গঠন
setResponseHeader(name, value);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
name | স্ট্রিং | হেডারের নাম। এইচটিটিপি হেডার নামগুলি কেস-সংবেদনশীল, তাই হেডারের নাম ছোট হাতের হবে৷ |
value | স্ট্রিং অনির্ধারিত | হেডার মান। যদি নাল বা অনির্ধারিত হয়, তাহলে এটি নামযুক্ত শিরোনামটি সাফ করে যে প্রতিক্রিয়াটি ফেরত দেওয়া হবে। |
সংশ্লিষ্ট অনুমতি
access_response
অনুমতির প্রয়োজন। কমপক্ষে অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতি কনফিগার করা আবশ্যক:
-
headers
setResponseStatus
যে প্রতিক্রিয়াটি ফেরত দেওয়া হবে তার HTTP স্থিতি কোড সেট করে।
দ্রষ্টব্য যে ক্লায়েন্টের কাছে প্রতিক্রিয়া ফেরত পাঠানোর জন্য returnResponse কল করতে হবে।
বাক্য গঠন
setResponseStatus(statusCode);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
statusCode | সংখ্যা | HTTP স্ট্যাটাস কোড ফেরত দিতে হবে। |
সংশ্লিষ্ট অনুমতি
access_response
অনুমতির প্রয়োজন। কমপক্ষে অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতি কনফিগার করা আবশ্যক:
-
status
sha256
ইনপুটের SHA-256 ডাইজেস্ট গণনা করে এবং বেস64 এ এনকোড করা ডাইজেস্টের সাথে একটি কলব্যাক আহ্বান করে, যদি না options
অবজেক্ট একটি ভিন্ন আউটপুট এনকোডিং নির্দিষ্ট করে।
এই API স্বাক্ষর এবং আচরণ ওয়েব কন্টেইনারগুলির জন্য sha256
API-এর সাথে মেলে; যাইহোক, সার্ভার পাত্রে কাস্টম টেমপ্লেটগুলিকে সহজ কোডের জন্য sha256Sync
API ব্যবহার করা উচিত।
উদাহরণ
const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
const sha256 = require('sha256');
sha256('inputString', (digest) => {
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digest));
});
sha256('inputString', (digest) => {
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digest));
}, {outputEncoding: 'hex'});
বাক্য গঠন
sha256(input, onSuccess, options = undefined);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
input | স্ট্রিং | হ্যাশ করার জন্য স্ট্রিং। |
onSuccess | ফাংশন | ফলাফল ডাইজেস্টের সাথে কল করা হয়, বেস64 এ এনকোড করা হয়, যদি না options অবজেক্ট একটি ভিন্ন আউটপুট এনকোডিং নির্দিষ্ট করে। |
options | বস্তু | আউটপুট এনকোডিং নির্দিষ্ট করতে ঐচ্ছিক অপশন অবজেক্ট। যদি নির্দিষ্ট করা থাকে, তাহলে অবজেক্টটিতে মূল outputEncoding থাকতে হবে যার মান base64 বা hex একটি। |
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
sha256Sync
ইনপুটের SHA-256 ডাইজেস্ট গণনা করে, বেস64-এ এনকোড করা, যদি না options
অবজেক্ট একটি ভিন্ন আউটপুট এনকোডিং নির্দিষ্ট করে।
উদাহরণ
const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
const sha256Sync = require('sha256Sync');
const digestBase64 = sha256Sync('inputString');
const digestHex = sha256Sync('inputString', {outputEncoding: 'hex'});
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digestBase64));
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digestHex));
বাক্য গঠন
sha256Sync(input, options = undefined);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
input | স্ট্রিং | হ্যাশ করার জন্য স্ট্রিং। |
options | বস্তু | আউটপুট এনকোডিং নির্দিষ্ট করতে ঐচ্ছিক অপশন অবজেক্ট। যদি নির্দিষ্ট করা থাকে, তাহলে অবজেক্টটিতে মূল outputEncoding থাকতে হবে যার মান base64 বা hex একটি। |
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
templateDataStorage
টেমপ্লেট ডেটা স্টোরেজ অ্যাক্সেস করার পদ্ধতি সহ একটি বস্তু প্রদান করে। টেমপ্লেট ডেটা স্টোরেজ একটি একক টেমপ্লেটের এক্সিকিউশন জুড়ে ডেটা শেয়ার করার অনুমতি দেয়। টেমপ্লেট ডেটা স্টোরেজে সংরক্ষিত ডেটা কনটেইনার চালানো সার্ভারে টিকে থাকে। বেশিরভাগ ক্ষেত্রেই কন্টেইনার চালানোর একাধিক সার্ভার রয়েছে, তাই টেমপ্লেট ডেটা স্টোরেজে ডেটা সংরক্ষণ করা গ্যারান্টি দেয় না যে প্রতিটি পরবর্তী অনুরোধের ডেটাতে অ্যাক্সেস থাকবে।
"টেমপ্লেটডেটাস্টোরেজ" নামের "ডেটা" বলতে বোঝায় যে শুধুমাত্র প্লেইন, নন-ফাংশন ডেটা টাইপ এই API ব্যবহার করে সংরক্ষণ করা যেতে পারে। API-তে পাস করা ফাংশনগুলির যেকোন ফাংশন বা রেফারেন্স পরিবর্তে null
হিসাবে সংরক্ষণ করা হবে।
বাক্য গঠন
const templateDataStorage = require('templateDataStorage');
// Returns a copy of the value stored for the given key, or null if nothing
// is stored with that key.
templateDataStorage.getItemCopy(key);
// Stores a copy of the value for the given key (or removes the data stored
// for the given key if the input value is null).
templateDataStorage.setItemCopy(key, value);
// Removes the value stored for the given key, if present.
templateDataStorage.removeItem(key);
// Deletes all values stored for the current template.
templateDataStorage.clear();
উদাহরণ
const sendHttpGet = require('sendHttpGet');
const setResponseBody = require('setResponseBody');
const setResponseStatus = require('setResponseStatus');
const templateDataStorage = require('templateDataStorage');
// Check to see if the item is in the cache.
const cachedBody = templateDataStorage.getItemCopy(data.key);
if (cachedBody) {
setResponseBody(cachedBody);
data.gtmOnSuccess();
return;
}
sendHttpGet(data.url).then((result) => {
if (result.statusCode >= 200 && result.statusCode < 300) {
setResponseBody(result.body);
templateDataStorage.setItemCopy(data.key, result.body);
data.gtmOnSuccess();
} else {
data.gtmOnFailure();
}
setResponseStatus(result.statusCode);
});
সংশ্লিষ্ট অনুমতি
testRegex
createRegex
API এর মাধ্যমে তৈরি একটি রেজেক্সের বিরুদ্ধে একটি স্ট্রিং পরীক্ষা করে। রেজেক্স মেলে true
দেখায়। অন্যথায় false
ফেরত দেয়।
বিশ্বব্যাপী পতাকা দিয়ে তৈরি একটি রেজেক্স রাষ্ট্রীয়। বিস্তারিত জানার জন্য RegExp ডকুমেন্টেশন দেখুন।
উদাহরণ
const createRegex = require('createRegex');
const testRegex = require('testRegex');
const domainRegex = createRegex('\\w+\\.com', 'i');
// createRegex returns null if the regex is invalid or Re2 is not available.
if (domainRegex === null) return;
// Returns true
testRegex(domainRegex, 'example.com/foobar');
বাক্য গঠন
testRegex(regex, string);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
regex | অবজেক্ট | Regex এর বিরুদ্ধে পরীক্ষা করার জন্য, createRegex API থেকে ফিরে এসেছে। |
string | স্ট্রিং | পরীক্ষা করার জন্য স্ট্রিং পরীক্ষা করুন। |
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
toBase64
base64 বা base64url হিসাবে একটি স্ট্রিং এনকোড করে। বেস64 এনকোডিং-এ ডিফল্ট।
বাক্য গঠন
toBase64(input, options);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
input | স্ট্রিং | এনকোড করার জন্য স্ট্রিং। |
options | বস্তু | ঐচ্ছিক API কনফিগারেশন। (নীচের বিকল্পগুলি দেখুন।) |
অপশন
অপশন | টাইপ | বর্ণনা | ন্যূনতম সংস্করণ |
---|---|---|---|
urlEncoding | বুলিয়ান | সত্য হলে, ফলাফলটি base64url বিন্যাস ব্যবহার করে এনকোড করা হবে। | 1.0.0 |
উদাহরণ
const toBase64 = require('toBase64');
const base64Hello = toBase64('hello');
const base64UrlHello = toBase64('hello', {urlEncoding: true});
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
BigQuery
BigQuery ফাংশন প্রদান করে এমন একটি বস্তু প্রদান করে।
BigQuery.insert
ফাংশন একটি BigQuery টেবিলে ডেটা লেখার অনুমতি দেয়। এটি একটি প্রতিশ্রুতি প্রদান করে যা একটি সফল সন্নিবেশের উপর সমাধান করে বা একটি ত্রুটির উপর প্রত্যাখ্যান করে।
যখন সন্নিবেশ সফল হয়, প্রতিশ্রুতি কোন যুক্তি ছাড়াই সমাধান করে।
সন্নিবেশ ব্যর্থ হলে, প্রতিশ্রুতি ত্রুটির কারণ সম্বলিত অবজেক্টের একটি তালিকা সহ প্রত্যাখ্যান করে এবং যদি একটি ত্রুটি ঘটে তাহলে সম্ভবত একটি সারি অবজেক্ট। অনুরোধের একটি অংশ সফলভাবে সম্পন্ন করা সম্ভব, অন্য অংশগুলি নয়। কোন সারি ঢোকানো হয়েছে তা আলাদা করতে সাহায্য করার জন্য একটি সারি অবজেক্ট সহ প্রতিটি সারির ত্রুটির একটি তালিকার সাথে এই ক্ষেত্রে প্রতিশ্রুতিটি প্রত্যাখ্যান করা হয়েছে (নীচে ত্রুটির উদাহরণ দেখুন)। আরও তথ্যের জন্য ত্রুটির বার্তাগুলিতে BigQuery-এর ডকুমেন্টেশন দেখুন।
বাক্য গঠন
BigQuery.insert(connectionInfo, rows[, options]);
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
connectionInfo | বস্তু | একটি BigQuery টেবিলের সাথে সংযোগ করার জন্য প্রয়োজনীয় তথ্য নির্ধারণ করে। একটি ঐচ্ছিক পরামিতি এবং দুটি প্রয়োজনীয় পরামিতি আছে:
|
rows | অ্যারে | সারি সারণিতে সন্নিবেশ করান. |
options | বস্তু | ঐচ্ছিক অনুরোধ বিকল্প. সমর্থিত বিকল্পগুলি হল: ignoreUnknownValues এবং skipInvalidRows । অজানা বিকল্প কী উপেক্ষা করা হয়. (নীচে বিকল্পগুলি দেখুন।) |
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
ignoreUnknownValues | বুলিয়ান | যদি true তে সেট করা হয়, তাহলে স্কিমার সাথে মেলে না এমন মান ধারণ করে এমন সারি গ্রহণ করুন। অজানা মান উপেক্ষা করা হয়. ডিফল্ট থেকে false । |
skipInvalidRows | বুলিয়ান | যদি true তে সেট করা হয়, তাহলে একটি অনুরোধের সব বৈধ সারি সন্নিবেশ করান, এমনকি যদি অবৈধ সারি থাকে। ডিফল্ট থেকে false । |
একটি মডিউল পাওয়া যায়নি ত্রুটির অর্থ হল আপনার সার্ভারের কন্টেইনার সম্ভবত আমাদের ছবির একটি পুরানো সংস্করণ চালাচ্ছে যাতে এখনও BigQuery মডিউল অন্তর্ভুক্ত করা হয়নি। অনুগ্রহ করে আমাদের ডিপ্লয়মেন্ট স্ক্রিপ্ট ব্যবহার করে একই সেটিংস সহ আপনার সার্ভার কন্টেইনার পুনরায় স্থাপন করুন৷ অপারেশন শেষ হলে মডিউলটি স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত হবে।
একটি নন-ইনসার্টেশন ত্রুটিতে সাধারণত একটি reason
কী সহ একটি ত্রুটি বস্তু থাকে:
[{reason: 'invalid'}]
একটি সন্নিবেশ ত্রুটি একটি errors
অ্যারে এবং একটি row
অবজেক্ট সহ একাধিক ত্রুটি বস্তু থাকতে পারে। নিম্নলিখিত দুটি সারি সন্নিবেশ করা থেকে একটি ত্রুটি প্রতিক্রিয়ার একটি উদাহরণ যেখানে শুধুমাত্র একটি সারিতে একটি ত্রুটি রয়েছে:
[
{
"errors": [
{
"reason":"invalid"
}
],
"row": {
"string_col":"otherString",
"number_col":-3,
"bool_col":3
}
},
{
"errors": [
{
"reason":"stopped"
}
],
"row": {
"string_col":"stringValue",
"number_col":5,
"bool_col:false
}
}
]
উদাহরণ
const BigQuery = require('BigQuery');
const connectionInfo = {
'projectId': 'gcp-cloud-project-id',
'datasetId': 'destination-dataset',
'tableId': 'destination-table',
};
const rows = [{
'column1': 'String1',
'column2': 1234,
}];
const options = {
'ignoreUnknownValues': true,
'skipInvalidRows': false,
};
BigQuery.insert(connectionInfo, rows, options)
.then(data.gtmOnSuccess, data.gtmOnFailure);
সংশ্লিষ্ট অনুমতি
Firestore
Firestore ফাংশন প্রদান করে এমন একটি বস্তু প্রদান করে।
এই API শুধুমাত্র নেটিভ মোডে Firestore সমর্থন করে, Datastore মোডে Firestore নয়। এছাড়াও, API শুধুমাত্র ডিফল্ট ডাটাবেস ব্যবহার করে সমর্থন করে।
Firestore.read
Firestore.read
ফাংশন একটি Firestore নথি থেকে ডেটা পড়ে এবং একটি প্রতিশ্রুতি প্রদান করে যা দুটি কী ধারণকারী বস্তুর সমাধান করে: id
এবং data
। যদি নথিটি বিদ্যমান না থাকে, তাহলে প্রতিশ্রুতিটি not_found
এর সমান একটি reason
কী ধারণকারী বস্তুর সাথে প্রত্যাখ্যান করে।
বাক্য গঠন
Firestore.read(path[, options]);
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
path | স্ট্রিং | নথি বা সংগ্রহের পথ। '/' দিয়ে শুরু বা শেষ করা উচিত নয়। |
options | বস্তু | ঐচ্ছিক অনুরোধ বিকল্প. সমর্থিত বিকল্পগুলি হল: projectId , disableCache এবং লেনদেন । অজানা বিকল্প কী উপেক্ষা করা হয়. (নীচে বিকল্পগুলি দেখুন।) |
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
projectId | স্ট্রিং | ঐচ্ছিক Google ক্লাউড প্ল্যাটফর্ম প্রকল্প আইডি। যদি বাদ দেওয়া হয়, তাহলে প্রজেক্ট আইডির জন্য access_firestore অনুমতি সেটিং * বা GOOGLE_CLOUD_PROJECT সেট করা থাকলে পরিবেশ পরিবর্তনশীল GOOGLE_CLOUD_PROJECT থেকে projectId পুনরুদ্ধার করা হবে। যদি সার্ভার কন্টেইনারটি Google ক্লাউডে চলছে, GOOGLE_CLOUD_PROJECT ইতিমধ্যেই Google ক্লাউড প্রকল্পের আইডিতে সেট করা হবে৷ |
disableCache | বুলিয়ান | ঐচ্ছিক ক্যাশে নিষ্ক্রিয় করতে হবে কিনা তা নির্ধারণ করে। ক্যাশিং ডিফল্টরূপে সক্রিয় থাকে, যা অনুরোধের সময়কালের জন্য ফলাফল ক্যাশে করবে। |
transaction | স্ট্রিং | ঐচ্ছিক Firestore.runTransaction() থেকে মানটি উদ্ধার করা হয়েছে। একটি লেনদেনের মধ্যে ব্যবহার করা অপারেশন চিহ্নিত করে। |
উদাহরণ
const Firestore = require('Firestore');
return Firestore.read('collection/document', {
projectId: 'gcp-cloud-project-id',
}).then((result) => result.data.key, () => undefined);
Firestore.write
Firestore.write
ফাংশন একটি Firestore নথি বা সংগ্রহে ডেটা লেখে। যদি পথটি একটি সংগ্রহের জন্য হয়, একটি দস্তাবেজ একটি এলোমেলোভাবে তৈরি করা আইডি দিয়ে তৈরি করা হবে৷ যদি পথটি একটি নথিতে থাকে এবং এটি বিদ্যমান না থাকে তবে এটি তৈরি করা হবে। এই API একটি প্রতিশ্রুতি প্রদান করে যা যোগ করা বা পরিবর্তিত নথির আইডিতে সমাধান করে। যদি লেনদেনের বিকল্পটি ব্যবহার করা হয়, তবে API এখনও একটি প্রতিশ্রুতি প্রদান করে, কিন্তু লেখাগুলি ব্যাচ করা থেকে ID ধারণ করবে না।
বাক্য গঠন
Firestore.write(path, input[, options]);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
path | স্ট্রিং | নথি বা সংগ্রহের পথ। '/' দিয়ে শুরু বা শেষ করা উচিত নয়। |
input | বস্তু | নথিতে লেখার মান। মার্জ অপশন সেট করা থাকলে, এপিআই ইনপুট থেকে ডকুমেন্টে কীগুলি মার্জ করবে। |
options | বস্তু | ঐচ্ছিক অনুরোধ বিকল্প. সমর্থিত বিকল্পগুলি হল: ProjectId , মার্জ , এবং লেনদেন ৷ অজানা বিকল্প কী উপেক্ষা করা হয়. (নীচে বিকল্পগুলি দেখুন।) |
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
projectId | স্ট্রিং | ঐচ্ছিক Google ক্লাউড প্ল্যাটফর্ম প্রকল্প আইডি। যদি বাদ দেওয়া হয়, তাহলে প্রজেক্ট আইডির জন্য access_firestore অনুমতি সেটিং * বা GOOGLE_CLOUD_PROJECT সেট করা থাকলে পরিবেশ পরিবর্তনশীল GOOGLE_CLOUD_PROJECT থেকে projectId পুনরুদ্ধার করা হবে। যদি সার্ভার কন্টেইনারটি Google ক্লাউডে চলছে, GOOGLE_CLOUD_PROJECT ইতিমধ্যেই Google ক্লাউড প্রকল্পের আইডিতে সেট করা হবে৷ |
merge | বুলিয়ান | ঐচ্ছিক যদি true তে সেট করা হয়, তাহলে ইনপুট থেকে কীগুলিকে নথিতে মার্জ করুন, অন্যথায় পদ্ধতিটি পুরো নথিটিকে ওভাররাইড করবে। ডিফল্ট থেকে false । |
transaction | স্ট্রিং | ঐচ্ছিক Firestore.runTransaction() থেকে মানটি উদ্ধার করা হয়েছে। একটি লেনদেনের মধ্যে ব্যবহার করা অপারেশন চিহ্নিত করে। |
উদাহরণ
const Firestore = require('Firestore');
const input = {key1: 'value1', key2: 12345};
Firestore.write('collection/document', input, {
projectId: 'gcp-cloud-project-id',
merge: true,
}).then((id) => {
data.gtmOnSuccess();
}, data.gtmOnFailure);
Firestore.query
Firestore.query
ফাংশন প্রদত্ত সংগ্রহকে জিজ্ঞাসা করে এবং একটি প্রতিশ্রুতি প্রদান করে যা ফায়ারস্টোর নথির একটি অ্যারের সমাধান করে যা ক্যোয়ারী শর্তের সাথে মেলে। Firestore ডকুমেন্ট অবজেক্টটি Firestore.read
এ উপরে তালিকাভুক্ত হিসাবে একই। ক্যোয়ারী শর্তের সাথে মেলে এমন কোন নথি না থাকলে, প্রত্যাবর্তিত প্রতিশ্রুতি একটি খালি অ্যারের সমাধান করবে।
বাক্য গঠন
Firestore.query(collection, queryConditions[, options]);
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
collection | স্ট্রিং | সংগ্রহের পথ। '/' দিয়ে শুরু বা শেষ করা উচিত নয়। |
queryConditions | অ্যারে | ক্যোয়ারী শর্ত একটি অ্যারে. প্রতিটি কোয়েরি তিনটি মান সহ একটি অ্যারের আকারে আসে: কী , অপারেটর , এবং প্রত্যাশিত মান । যেমন: [['id', '<', '5'], ['state', '==', 'CA']]। ক্যোয়ারী ফলাফল তৈরি করতে শর্তগুলি একসাথে AND করা হয়। সামঞ্জস্যপূর্ণ ক্যোয়ারী অপারেটরগুলির একটি তালিকার জন্য অনুগ্রহ করে Firestore-এর ক্যোয়ারী অপারেটরগুলি দেখুন৷ |
options | বস্তু | ঐচ্ছিক অনুরোধ বিকল্প. সমর্থিত বিকল্পগুলি হল: projectId , disableCache , limit , এবং লেনদেন ৷ অজানা বিকল্প কী উপেক্ষা করা হয়. (নীচে বিকল্পগুলি দেখুন।) |
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
projectId | স্ট্রিং | ঐচ্ছিক Google ক্লাউড প্ল্যাটফর্ম প্রকল্প আইডি। যদি বাদ দেওয়া হয়, তাহলে প্রজেক্ট আইডির জন্য access_firestore অনুমতি সেটিং * বা GOOGLE_CLOUD_PROJECT সেট করা থাকলে পরিবেশ পরিবর্তনশীল GOOGLE_CLOUD_PROJECT থেকে projectId পুনরুদ্ধার করা হবে। যদি সার্ভার কন্টেইনারটি Google ক্লাউডে চলছে, GOOGLE_CLOUD_PROJECT ইতিমধ্যেই Google ক্লাউড প্রকল্পের আইডিতে সেট করা হবে৷ |
disableCache | বুলিয়ান | ঐচ্ছিক ক্যাশে নিষ্ক্রিয় করতে হবে কিনা তা নির্ধারণ করে। ক্যাশিং ডিফল্টরূপে সক্রিয় থাকে, যা অনুরোধের সময়কালের জন্য ফলাফল ক্যাশে করবে। |
limit | সংখ্যা | ঐচ্ছিক ক্যোয়ারী দ্বারা প্রত্যাবর্তিত ফলাফলের সর্বাধিক সংখ্যা পরিবর্তন করে, ডিফল্ট 5 এ। |
transaction | স্ট্রিং | ঐচ্ছিক Firestore.runTransaction() থেকে মানটি উদ্ধার করা হয়েছে। একটি লেনদেনের মধ্যে ব্যবহার করা অপারেশন চিহ্নিত করে। |
উদাহরণ
const Firestore = require('Firestore');
const queries = const queries = [['id', '==', '5']];
return Firestore.query('collection', queries, {
projectId: 'gcp-cloud-project-id',
limit: 1,
}).then((documents) => documents[0].data.key, () => undefined);
Firestore.runTransaction
Firestore.runTransaction
ফাংশন ব্যবহারকারীকে Firestore থেকে পরমাণুভাবে পড়তে এবং লিখতে দেয়। যদি একটি সমসাময়িক লেখা বা অন্য লেনদেনের দ্বন্দ্ব ঘটে, লেনদেনটি দুই বার পর্যন্ত পুনরায় চেষ্টা করা হবে। যদি এটি মোট তিনটি প্রচেষ্টার পরে ব্যর্থ হয়, API একটি ত্রুটি সহ প্রত্যাখ্যান করবে। এই API একটি প্রতিশ্রুতি প্রদান করে যা প্রতিটি লেখার ক্রিয়াকলাপের জন্য ডকুমেন্ট আইডিগুলির একটি অ্যারের সমাধান করে, যদি লেনদেন সফল হয় এবং এটি ব্যর্থ হলে ত্রুটি সহ প্রত্যাখ্যান করবে।
বাক্য গঠন
Firestore.runTransaction(callback[, options]);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
callback | ফাংশন | একটি কলব্যাক যা একটি স্ট্রিং লেনদেন আইডি দিয়ে আহ্বান করা হয়েছে। লেনদেন আইডি রিড/রাইট/কোয়েরি এপিআই কলে পাস করা যেতে পারে। এই কলব্যাক ফাংশন অবশ্যই একটি প্রতিশ্রুতি প্রদান করবে। কলব্যাক ব্যর্থ হওয়ার আগে তিনবার পর্যন্ত চলতে পারে। |
options | বস্তু | ঐচ্ছিক অনুরোধ বিকল্প. সমর্থিত শুধুমাত্র সমর্থিত বিকল্প হল projectId . অজানা বিকল্প কী উপেক্ষা করা হয়. (নীচে বিকল্পগুলি দেখুন।) |
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
projectId | স্ট্রিং | ঐচ্ছিক Google ক্লাউড প্ল্যাটফর্ম প্রকল্প আইডি। যদি বাদ দেওয়া হয়, তাহলে প্রজেক্ট আইডির জন্য access_firestore অনুমতি সেটিং * বা GOOGLE_CLOUD_PROJECT সেট করা থাকলে পরিবেশ পরিবর্তনশীল GOOGLE_CLOUD_PROJECT থেকে projectId পুনরুদ্ধার করা হবে। যদি সার্ভার কন্টেইনারটি Google ক্লাউডে চলছে, GOOGLE_CLOUD_PROJECT ইতিমধ্যেই Google ক্লাউড প্রকল্পের আইডিতে সেট করা হবে৷ |
উদাহরণ
const Firestore = require('Firestore');
const path = 'collection/document';
const projectId = 'gcp-cloud-project-id';
Firestore.runTransaction((transaction) => {
const transactionOptions = {
projectId: projectId,
transaction: transaction,
};
// Must return a promise.
return Firestore.read(path, transactionOptions).then((result) => {
const newInputCount = result.data.inputCount + 1;
const input = {key1: 'value1', inputCount: newInputCount};
return Firestore.write(path, input, transactionOptions);
});
}, {
projectId: projectId
}).then((ids) => {
data.gtmOnSuccess();
}, data.gtmOnFailure);
প্রতিটি ফায়ারস্টোর ফাংশনে ত্রুটিগুলি উপলব্ধ একটি reason
কী ধারণকারী বস্তুর সাথে প্রত্যাখ্যান করা হবে:
Firestore.read(...).then(onSuccess, (error) => {
if (error.reason === 'unknown') {
// Handle the unknown error here.
}
});
ত্রুটির কারণগুলি থাকতে পারে তবে Firestore REST API ত্রুটি কোডগুলির মধ্যে সীমাবদ্ধ নয়৷
সংশ্লিষ্ট অনুমতি
JSON
JSON ফাংশন প্রদান করে এমন একটি বস্তু প্রদান করে।
parse()
ফাংশন স্ট্রিং দ্বারা বর্ণিত মান বা অবজেক্ট গঠন করতে একটি JSON স্ট্রিং পার্স করে। যদি মানটি পার্স করা না যায় (যেমন বিকৃত JSON), ফাংশনটি undefined
ফিরে আসবে। ইনপুট মান একটি স্ট্রিং না হলে, ইনপুট একটি স্ট্রিং থেকে জোর করা হবে.
stringify()
ফাংশন ইনপুটকে JSON স্ট্রিং-এ রূপান্তর করে। যদি মানটি পার্স করা না যায় (যেমন বস্তুটির একটি চক্র থাকে), পদ্ধতিটি undefined
ফিরে আসবে।
উদাহরণ
const JSON = require('JSON');
// The JSON input string is converted to an object.
const object = JSON.parse('{"foo":"bar"}');
// The input object is converted to a JSON string.
const str = JSON.stringify({foo: 'bar'});
বাক্য গঠন
JSON.parse(stringInput);
JSON.stringify(value);
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
Math
একটি বস্তু Math
ফাংশন প্রদান করে.
বাক্য গঠন
const Math = require('Math');
// Retrieve the absolute value.
const absolute = Math.abs(-3);
// Round the input down to the nearest integer.
const roundedDown = Math.floor(3.6);
// Round the input up to the nearest integer.
const roundedUp = Math.ceil(2.2);
// Round the input to the nearest integer.
const rounded = Math.round(3.1);
// Return the largest argument.
const biggest = Math.max(1, 3);
// Return the smallest argument.
const smallest = Math.min(3, 5);
// Return the first argument raised to the power of the second argument.
const powerful = Math.pow(3, 1);
// Return the square root of the argument.
const unsquared = Math.sqrt(9);
পরামিতি
গণিত ফাংশন পরামিতি সংখ্যায় রূপান্তরিত হয়।
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
Messages
নিম্নলিখিত APIগুলি একটি কন্টেইনারের বিভিন্ন অংশের মধ্যে বার্তা পাঠানোর অনুমতি দেওয়ার জন্য একসাথে কাজ করে৷
addMessageListener
একটি ফাংশন যোগ করে যা একটি নির্দিষ্ট ধরনের বার্তা শোনে। যখন sendMessage
API (সাধারণত একটি ট্যাগ দ্বারা) ব্যবহার করে এই ধরনের একটি বার্তা পাঠানো হয়, তখন কলব্যাকটি সিঙ্ক্রোনাসভাবে চালানো হবে। কলব্যাক দুটি পরামিতি দিয়ে চালানো হয়:
-
messageType:string
-
message:Object
যদি একটি ক্লায়েন্টে কলব্যাক যোগ করা হয়, কলব্যাকটি ক্লায়েন্ট তৈরি করা সমস্ত ইভেন্ট জুড়ে বার্তা পাবে। যদি কলব্যাক শুধুমাত্র একটি নির্দিষ্ট ইভেন্ট থেকে বার্তা গ্রহণ করে, তাহলে runContainer
API-এর onStart
ফাংশনে bindToEvent
ব্যবহার করে এই APIটিকে ইভেন্টে আবদ্ধ করুন। উদাহরণ দেখুন।
বাক্য গঠন
const addMessageListener = require('addMessageListener');
addMessageListener('send_pixel', (messageType, message) => {
// This will be run whenever something sends a 'send_pixel' message.
});
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
messageType | স্ট্রিং | শোনার জন্য বার্তার ধরন। মান একটি স্ট্রিং না হলে, এটি একটি স্ট্রিং থেকে জোর করা হবে. |
callback | ফাংশন | প্রযোজ্য বার্তা প্রকারের একটি বার্তা পাঠানো হলে চালানোর জন্য কলব্যাক৷ কলব্যাক একটি ফাংশন না হলে, API কিছুই করবে না। |
উদাহরণ
const addMessageListener = require('addMessageListener');
const claimRequest = require('claimRequest');
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');
claimRequest();
addMessageListener('send_pixel', (messageType, message) => {
// This will be run whenever a tag sends a 'send_pixel' message.
});
const events = extractEventsFromMpv1();
let eventsCompleted = 0;
events.forEach((event, i) => {
runContainer(events[i], /* onComplete= */ () => {
if (events.length === ++eventsCompleted) {
returnResponse();
}
}, /* onStart= */ (bindToEvent) => {
if (i === 0) {
bindToEvent(addMessageListener)('send_pixel', (messageType, message) => {
// This will be called whenever a tag for the first event sends a
// 'send_pixel' message.
});
}
});
});
সংশ্লিষ্ট অনুমতি
use_message
অনুমতি প্রয়োজন। অনুমতি অন্তত অনুমতি কনফিগার করা আবশ্যক:
-
listen
বাlisten_and_send
Usage
সহ একটি বার্তার ধরন।
hasMessageListener
প্রদত্ত বার্তা প্রকারের জন্য একটি বার্তা শ্রোতা যোগ করা হলে সত্য প্রদান করে। অন্যথায় মিথ্যা ফেরত দেয়।
বাক্য গঠন
const hasMessageListener = require('hasMessageListener');
hasMessageListener('send_pixel');
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
sendMessage
একটি নিবন্ধিত শ্রোতাকে নির্দিষ্ট ধরনের একটি বার্তা পাঠায়। এটি ধারকটি চালানো ক্লায়েন্টের কাছে একটি ট্যাগ থেকে বার্তা প্রেরণে ব্যবহার করা যেতে পারে।
বাক্য গঠন
const sendMessage = require('sendMessage');
sendMessage('send_pixel', {url: 'https://analytics.example.com/collect'});
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
messageType | স্ট্রিং | প্রেরণে বার্তা প্রকার। মান যদি স্ট্রিং না হয় তবে এটি একটি স্ট্রিংয়ে জোর করা হবে। |
message | বস্তু | প্রেরণ বার্তা। যদি বার্তাটি কোনও বস্তু না হয় তবে এপিআই কিছুই করবে না। |
সংশ্লিষ্ট অনুমতি
use_message
অনুমতি প্রয়োজন। কমপক্ষে অনুমতি দেওয়ার জন্য অনুমতিটি কনফিগার করতে হবে:
-
listen_and_send
বাsend
Usage
সহ একটি বার্তা প্রকার।
Object
Object
পদ্ধতি সরবরাহ করে এমন একটি বস্তু প্রদান করে।
keys()
পদ্ধতিটি স্ট্যান্ডার্ড লাইব্রেরি অবজেক্ট.কি () আচরণ সরবরাহ করে। এটি প্রদত্ত বস্তুর নিজস্ব গণনীয় সম্পত্তি নামের একই ক্রমে একটি অ্যারে দেয় যা for...in...
লুপটি করবে। যদি ইনপুট মান কোনও অবজেক্ট না হয় তবে এটি কোনও বস্তুর সাথে জোর করা হবে।
values()
পদ্ধতিটি স্ট্যান্ডার্ড লাইব্রেরি অবজেক্ট সরবরাহ করে val মানগুলি () আচরণ। এটি প্রদত্ত বস্তুর নিজস্ব গণনীয় সম্পত্তি মানগুলির একটি অ্যারে একই ক্রমে একটি অ্যারে দেয় যা for...in...
লুপটি করবে। যদি ইনপুট মান কোনও অবজেক্ট না হয় তবে এটি কোনও বস্তুর সাথে জোর করা হবে।
entries()
পদ্ধতিটি স্ট্যান্ডার্ড লাইব্রেরি অবজেক্ট.এন্ট্রি () আচরণ সরবরাহ করে। এটি প্রদত্ত বস্তুর নিজস্ব গণনীয় সম্পত্তি [key, value]
জোড়গুলির একই ক্রমে একটি অ্যারে দেয় যা for...in...
লুপটি করবে। যদি ইনপুট মান কোনও বস্তু না হয় তবে এটি কোনও বস্তুর সাথে জোর করা হবে।
freeze()
পদ্ধতিটি স্ট্যান্ডার্ড লাইব্রেরি অবজেক্ট সরবরাহ করে refe ফ্রিজ () আচরণ। একটি হিমায়িত বস্তু আর পরিবর্তন করা যাবে না; কোনও অবজেক্টকে হিমায়িত করা নতুন বৈশিষ্ট্যগুলিকে এতে যুক্ত হতে বাধা দেয়, বিদ্যমান বৈশিষ্ট্যগুলি অপসারণ থেকে এবং বিদ্যমান বৈশিষ্ট্যগুলির মানগুলি পরিবর্তন করা থেকে বিরত রাখে। freeze()
যে একই জিনিসটি প্রবেশ করেছিল তা ফিরিয়ে দেয় A
delete()
পদ্ধতিটি স্ট্যান্ডার্ড লাইব্রেরি মুছুন অপারেটরের আচরণ সরবরাহ করে। এটি অবজেক্ট থেকে প্রদত্ত কীটি সরিয়ে দেয় যদি না অবজেক্টটি হিমায়িত হয়। স্ট্যান্ডার্ড লাইব্রেরি মুছুন অপারেটরের মতো, প্রথম ইনপুট মান ( objectInput
) এমন একটি বস্তু যা হিমায়িত হয় না এমনকি দ্বিতীয় ইনপুট মান ( keyToDelete
) এমন একটি কী নির্দিষ্ট করে যা বিদ্যমান নেই তা নির্দিষ্ট true
। এটি অন্য সমস্ত ক্ষেত্রে false
প্রদান করে। তবে এটি নিম্নলিখিত উপায়ে স্ট্যান্ডার্ড লাইব্রেরি মুছুন অপারেটর থেকে পৃথক:
-
keyToDelete
কোনও বিন্দু-ধ্বংসাত্মক স্ট্রিং হতে পারে না যা একটি নেস্টেড কী নির্দিষ্ট করে। -
delete()
কোনও অ্যারে থেকে উপাদানগুলি অপসারণ করতে ব্যবহার করা যাবে না। -
delete()
বিশ্বব্যাপী সুযোগ থেকে কোনও সম্পত্তি অপসারণ করতে ব্যবহার করা যাবে না।
বাক্য গঠন
Object.keys(objectInput)
Object.values(objectInput)
Object.entries(objectInput)
Object.freeze(objectInput)
Object.delete(objectInput, keyToDelete)
পরামিতি
অবজেক্ট.কি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
অবজেক্ট ইনপুট | যেকোনো | যার কীগুলি গণনা করতে হবে তার অবজেক্ট। যদি ইনপুটটি কোনও বস্তু না হয় তবে এটি কোনও বস্তুর সাথে জোর করা হবে। |
Object.values
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
অবজেক্ট ইনপুট | যেকোনো | যে অবজেক্টটি গণনা করতে হবে। যদি ইনপুটটি কোনও বস্তু না হয় তবে এটি কোনও বস্তুর সাথে জোর করা হবে। |
অবজেক্ট.এন্ট্রি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
অবজেক্ট ইনপুট | যেকোনো | যে অবজেক্টটি গণনা করতে কী/মান জোড় করে। যদি ইনপুটটি কোনও বস্তু না হয় তবে এটি কোনও বস্তুর সাথে জোর করা হবে। |
অবজেক্ট.ফ্রিজ
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
অবজেক্ট ইনপুট | যেকোনো | অবজেক্ট জমাট. যদি ইনপুট কোনও বস্তু না হয় তবে এটি হিমায়িত অবজেক্ট হিসাবে বিবেচিত হবে। |
অবজেক্ট.ডিলিট
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
অবজেক্ট ইনপুট | যেকোনো | মুছে ফেলার চাবি যার অবজেক্ট। |
কীটোডিলিট | স্ট্রিং | মুছতে শীর্ষ-স্তরের কী। |
উদাহরণ
const Object = require('Object');
// The keys of an object are enumerated in an array.
const keys = Object.keys({foo: 'bar'});
// The values of an object are enumerated in an array.
const values = Object.values({foo: 'bar'});
// The key/value pairs of an object are enumerated in an array.
const entries = Object.entries({foo: 'bar'});
// The input object is frozen.
const frozen = Object.freeze({foo: 'bar'});
// The key is removed from the input object.
const obj1 = {deleteme: 'value'};
Object.delete(obj1, 'deleteme');
// Only a top-level key can be specified as the key to delete.
const obj2 = {nested: {key: 'value'}};
Object.delete(obj2, 'nested.key'); // This has no effect.
Object.delete(obj2.nested, 'key'); // This deletes the nested key.
Promise
এমন একটি বস্তু প্রদান করে যা প্রতিশ্রুতিগুলির সাথে ইন্টারঅ্যাক্ট করার জন্য পদ্ধতি সরবরাহ করে।
প্রতিশ্রুতিগুলি জাভাস্ক্রিপ্ট প্রতিশ্রুতির কার্যত সমতুল্য। প্রতিটি উদাহরণের তিনটি পদ্ধতি রয়েছে যা একটি প্রতিশ্রুতি ফিরিয়ে দেয় যা একটি প্রতিশ্রুতি নিষ্পত্তি হলে আরও পদক্ষেপের অনুমতি দেয়:
-
.then()
এটি প্যারামিটার হিসাবে দুটি কলব্যাক লাগে: সাফল্যের মামলার জন্য একটি এবং ব্যর্থতার ক্ষেত্রে একটি। -
.catch()
- কেবল প্রত্যাখ্যাত কেসগুলি পরিচালনা করে। প্যারামিটার হিসাবে একটি কলব্যাক নেয়। -
.finally()
- প্রতিশ্রুতিটি সমাধান করা হয়েছে বা প্রত্যাখ্যান করা হয়েছে কিনা তা চালানোর জন্য কোডের জন্য একটি উপায় সরবরাহ করে। প্যারামিটার হিসাবে একটি কলব্যাক নেয় যা কোনও যুক্তি ছাড়াই অনুরোধ করা হয়।
একটি পরিবর্তনশীল যা একটি প্রতিশ্রুতি দেয় যা প্রতিশ্রুতির সমাধান করা মানকে সমান করে, বা যদি প্রতিশ্রুতি প্রত্যাখ্যান করে তবে false
।
উদাহরণ
promise.then((resolvedValue) => {
// Handles when promise resolves.
}, (rejectedValue) => {
// Handles when promise rejects.
});
promise.catch((rejectedValue) => {
// Handles when promise rejects.
});
promise.finally(() => {
// Runs regardless of whether or not the previous promise resolves or
// rejects.
});
Promise.all
একটি প্রতিশ্রুতি প্রদান করে যে হয়:
- সমস্ত ইনপুটগুলি সমাধান হয়ে গেলে বা সমাধান করে
- যখন কোনও ইনপুট প্রত্যাখ্যান করে তখন প্রত্যাখ্যান করে
বাক্য গঠন
Promise.all(inputs);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
inputs | অ্যারে | মান বা প্রতিশ্রুতি একটি অ্যারে। যদি কোনও ইনপুট কোনও প্রতিশ্রুতি না হয় তবে ইনপুটটি এমনভাবে পাস করা হয় যেন এটি কোনও প্রতিশ্রুতির সমাধান করা মান। ইনপুটটি অ্যারে না হলে একটি ত্রুটি ছুড়ে দেয়। |
উদাহরণ
const Promise = require('Promise');
const sendHttpGet = require('sendHttpGet');
return Promise.all(['a', sendHttpGet('https://example.com')])
.then((results) => {
// results will equal: ['a', {statusCode: 200, headers: {}, body: ''}]
});
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
Promise.create
একটি প্রতিশ্রুতি তৈরি করে যা জাভাস্ক্রিপ্ট প্রতিশ্রুতির কার্যত সমতুল্য।
বাক্য গঠন
Promise.create(resolver);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
resolver | ফাংশন | একটি ফাংশন যা দুটি ফাংশন সহ আহ্বান করা হয় - সমাধান এবং প্রত্যাখ্যান। প্রত্যাবর্তিত প্রতিশ্রুতি সমাধান বা প্রত্যাখ্যান করবে যখন সংশ্লিষ্ট প্যারামিটারটি অনুরোধ করা হবে। রেজোলভার কোনও ফাংশন না হলে একটি ত্রুটি ছুড়ে দেয়। |
উদাহরণ
const Promise = require('Promise');
return Promise.create((resolve, reject) => {
// Do asynchronous work that eventually calls resolve() or reject()
});
সংশ্লিষ্ট অনুমতি
কোনোটিই নয়।
পরীক্ষা এপিআই
এই এপিআইগুলি গুগল ট্যাগ ম্যানেজারে কাস্টম টেম্পলেটগুলির জন্য পরীক্ষা তৈরি করতে স্যান্ডবক্সযুক্ত জাভাস্ক্রিপ্ট পরীক্ষার সাথে কাজ করে। এই পরীক্ষার এপিআইগুলির কোনও require()
বিবৃতি দরকার নেই। [কাস্টম টেম্পলেট পরীক্ষা সম্পর্কে আরও জানুন]।
assertApi
একটি ম্যাচার অবজেক্টকে ফেরত দেয় যা প্রদত্ত এপিআই সম্পর্কে সাবলীলভাবে দৃ ser ়তা তৈরি করতে ব্যবহার করা যেতে পারে।
বাক্য গঠন
assertApi(apiName)
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
apiName | স্ট্রিং | এপিআইয়ের নাম যাচাই করতে; require() । |
ম্যাচার্স
-
Subject.wasCalled()
-
Subject.wasNotCalled()
-
Subject.wasCalledWith(...expected)
-
Subject.wasNotCalledWith(...expected)
উদাহরণ
assertApi('sendPixel').wasCalled();
assertApi('getUrl').wasNotCalled();
assertApi('makeNumber').wasCalledWith('8');
assertApi('setInWindow').wasNotCalledWith('myVar', 'theWrongValue');
assertThat
গুগলের [ট্রুথ] লাইব্রেরির পরে assertThat
এপিআই মডেল করা হয়েছে। এটি এমন একটি বস্তু প্রদান করে যা কোনও বিষয়ের মান সম্পর্কে সাবলীলভাবে দৃ ser ়তা তৈরি করতে ব্যবহার করা যেতে পারে। একটি দৃ ser ়তা ব্যর্থতা তাত্ক্ষণিকভাবে পরীক্ষা বন্ধ করবে এবং এটি ব্যর্থ হিসাবে চিহ্নিত করবে। তবে একটি পরীক্ষায় ব্যর্থতা অন্যান্য পরীক্ষার ক্ষেত্রে প্রভাবিত করবে না।
বাক্য গঠন
assertThat(actual, opt_message)
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
actual | যেকোনো | সাবলীল চেকগুলিতে ব্যবহারের মান। |
opt_message | স্ট্রিং | যদি দৃ ser ়তা ব্যর্থ হয় তবে প্রিন্ট করার জন্য al চ্ছিক বার্তা। |
ম্যাচার্স
ম্যাচার | বর্ণনা |
---|---|
isUndefined() | বিষয়টি undefined বলে দাবি করে। |
isDefined() | দৃ ser ়ভাবে দাবি করে যে বিষয়টি undefined নয়। |
isNull() | বিষয়টি null বলে দাবি করে। |
isNotNull() | দৃ ser ়ভাবে যে বিষয়টি null নয়। |
isFalse() | বিষয়টি false বলে দাবি করে। |
isTrue() | বিষয়টি true যে দৃ ser ়ভাবে। |
isFalsy() | বিষয়টিকে মিথ্যা বলে দাবি করে। মিথ্যা মানগুলি undefined , null , false , NaN , 0 এবং '' (খালি স্ট্রিং)। |
isTruthy() | বিষয়টি সত্য যে সত্য। মিথ্যা মানগুলি undefined , null , false , NaN , 0 এবং '' (খালি স্ট্রিং)। |
isNaN() | দৃ ser ়ভাবে যে বিষয়টি ন্যান মান। |
isNotNaN() | দৃ ser ়ভাবে দাবি করে যে বিষয়টি ন্যানের পাশাপাশি কোনও মূল্য। |
isInfinity() | বিষয়টি ইতিবাচক বা নেতিবাচক অনন্ত বলে দাবি করে। |
isNotInfinity() | ইতিবাচক বা নেতিবাচক অনন্ত ছাড়াও বিষয়টির কোনও মান বলে দাবি করে। |
isEqualTo(expected) | দৃ ser ়ভাবে যে বিষয়টি প্রদত্ত মানের সমান। এটি একটি মান তুলনা, রেফারেন্স তুলনা নয়। অবজেক্টস এবং অ্যারেগুলির বিষয়বস্তুগুলি পুনরাবৃত্তভাবে তুলনা করা হয়। |
isNotEqualTo(expected) | দৃ ser ়ভাবে দাবি করে যে বিষয়টি প্রদত্ত মানের সমান নয়। এটি একটি মান তুলনা, রেফারেন্স তুলনা নয়। অবজেক্টস এবং অ্যারেগুলির বিষয়বস্তুগুলি পুনরাবৃত্তভাবে তুলনা করা হয়। |
isAnyOf(...expected) | দৃ ser ়ভাবে যে বিষয়টি প্রদত্ত মানের একটির সমান। এটি একটি মান তুলনা, রেফারেন্স তুলনা নয়। অবজেক্টস এবং অ্যারেগুলির বিষয়বস্তুগুলি পুনরাবৃত্তভাবে তুলনা করা হয়। |
isNoneOf(...expected) | দৃ ser ়ভাবে দাবি করে যে বিষয়টি প্রদত্ত কোনও মানের সমান নয়। এটি একটি মান তুলনা, রেফারেন্স তুলনা নয়। অবজেক্টস এবং অ্যারেগুলির বিষয়বস্তুগুলি পুনরাবৃত্তভাবে তুলনা করা হয়। |
isStrictlyEqualTo(expected) | দৃ ser ়ভাবে দাবি করে যে বিষয়টি প্রদত্ত মানের সাথে কঠোরভাবে সমান ( === )। |
isNotStrictlyEqualTo(expected) | দৃ ser ়ভাবে দাবি করে যে বিষয়টি প্রদত্ত মানের সাথে কঠোরভাবে সমান ( !== ) নয়। |
isGreaterThan(expected) | দৃ ser ়ভাবে দাবি করে যে বিষয়টি অর্ডার করা তুলনায় প্রদত্ত মান ( > ) এর চেয়ে বেশি। |
isGreaterThanOrEqualTo(expected) | দৃ ser ়ভাবে দাবি করে যে বিষয়টি অর্ডার করা তুলনায় প্রদত্ত মানটির চেয়ে বেশি বা >= । |
isLessThan(expected) | দৃ ser ়ভাবে দাবি করে যে বিষয়টি অর্ডার করা তুলনায় প্রদত্ত মান ( < ) এর চেয়ে কম। |
isLessThanOrEqualTo(expected) | দৃ ser ়ভাবে দাবি করে যে বিষয়টি অর্ডার করা তুলনা করে প্রদত্ত মানটির চেয়ে <= বা সমান। |
contains(...expected) | দৃ ser ়ভাবে দাবি করে যে বিষয়টি একটি অ্যারে বা স্ট্রিং যা কোনও ক্রমে প্রদত্ত সমস্ত মান ধারণ করে। এটি একটি মান তুলনা, রেফারেন্স তুলনা নয়। অবজেক্টস এবং অ্যারেগুলির বিষয়বস্তুগুলি পুনরাবৃত্তভাবে তুলনা করা হয়। |
doesNotContain(...expected) | দৃ ser ়ভাবে দাবি করে যে বিষয়টি একটি অ্যারে বা স্ট্রিং যা প্রদত্ত মানগুলির কোনওটিই ধারণ করে না। এটি একটি মান তুলনা, রেফারেন্স তুলনা নয়। অবজেক্টস এবং অ্যারেগুলির বিষয়বস্তুগুলি পুনরাবৃত্তভাবে তুলনা করা হয়। |
containsExactly(...expected) | দৃ ser ়ভাবে দাবি করে যে বিষয়টি এমন একটি অ্যারে যা প্রদত্ত সমস্ত মানগুলি যে কোনও ক্রমে এবং অন্য কোনও মান ধারণ করে। এটি একটি মান তুলনা, রেফারেন্স তুলনা নয়। অবজেক্টস এবং অ্যারেগুলির বিষয়বস্তুগুলি পুনরাবৃত্তভাবে তুলনা করা হয়। |
doesNotContainExactly(...expected) | দৃ ser ়ভাবে দাবি করে যে বিষয়টি একটি অ্যারে যা কোনও ক্রমে প্রদত্ত মানগুলি থেকে মানগুলির একটি আলাদা সেট রয়েছে। এটি একটি মান তুলনা, রেফারেন্স তুলনা নয়। অবজেক্টস এবং অ্যারেগুলির বিষয়বস্তুগুলি পুনরাবৃত্তভাবে তুলনা করা হয়। |
hasLength(expected) | দৃ ser ়ভাবে যে বিষয়টি প্রদত্ত দৈর্ঘ্যের সাথে একটি অ্যারে বা স্ট্রিং। মানটি অ্যারে বা স্ট্রিং না হলে দৃ ser ়তা সর্বদা ব্যর্থ হয়। |
isEmpty() | দৃ ser ়ভাবে দাবি করে যে বিষয়টি একটি অ্যারে বা স্ট্রিং যা খালি (দৈর্ঘ্য = 0)। মানটি অ্যারে বা স্ট্রিং না হলে দৃ ser ়তা সর্বদা ব্যর্থ হয়। |
isNotEmpty() | দৃ ser ়ভাবে যে বিষয়টি একটি অ্যারে বা স্ট্রিং যা খালি নয় (দৈর্ঘ্য> 0)। মানটি অ্যারে বা স্ট্রিং না হলে দৃ ser ়তা সর্বদা ব্যর্থ হয়। |
isArray() | বিষয়টির ধরণটি একটি অ্যারে বলে দাবি করে। |
isBoolean() | বিষয়টির ধরণটি একটি বুলিয়ান বলে দাবি করে। |
isFunction() | বিষয়টির ধরণটি একটি ফাংশন বলে দাবি করে। |
isNumber() | বিষয়টির ধরণটি একটি সংখ্যা বলে দাবি করে। |
isObject() | বিষয়টির ধরণটি একটি বস্তু বলে দাবি করে। |
isString() | বিষয়টির ধরণটি একটি স্ট্রিং বলে দাবি করে। |
উদাহরণ
assertThat(undefined).isUndefined();
assertThat(id, 'ID must be defined').isDefined();
assertThat(null).isNull();
assertThat(undefined).isNotNull();
assertThat(true).isTrue();
assertThat(false).isFalse();
assertThat(1).isTruthy();
assertThat('').isFalsy();
assertThat(1/0).isInfinity();
assertThat(0).isNotInfinity();
assertThat(-'foo').isNaN();
assertThat(100).isNotNaN();
assertThat(sentUrl).isEqualTo('https://endpoint.example.com/?account=12345');
assertThat(category).isNotEqualTo('premium');
assertThat(5).isAnyOf(1, 2, 3, 4, 5);
assertThat(42).isNoneOf('the question', undefined, 41.9);
assertThat('value').isStrictlyEqualTo('value');
assertThat('4').isNotStrictlyEqualTo(4);
assertThat(['a', 'b', 'c']).contains('a', 'c');
assertThat(['x', 'y', 'z']).doesNotContain('f');
assertThat(['1', '2', '3']).containsExactly('3', '2', '1');
assertThat(['4', '5']).doesNotContainExactly('4');
assertThat('a string').hasLength(8);
assertThat([]).isEmpty();
assertThat('another string').isNotEmpty();
fail
তাত্ক্ষণিকভাবে বর্তমান পরীক্ষায় ব্যর্থ হয় এবং সরবরাহ করা হলে প্রদত্ত বার্তাটি মুদ্রণ করে।
বাক্য গঠন
fail(opt_message);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
opt_message | স্ট্রিং | Al চ্ছিক ত্রুটি বার্তা পাঠ্য। |
উদাহরণ
fail('This test has failed.');
mock
mock
এপিআই আপনাকে স্যান্ডবক্সযুক্ত এপিআইগুলির আচরণকে ওভাররাইড করতে দেয়। মক এপিআই টেমপ্লেট কোডে ব্যবহার করা নিরাপদ তবে এটি কেবল পরীক্ষার মোডে কার্যকর। প্রতিটি পরীক্ষা চালানোর আগে মকগুলি পুনরায় সেট করা হয়।
বাক্য গঠন
mock(apiName, returnValue);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
apiName | স্ট্রিং | উপহাস করার জন্য এপিআই এর নাম; require() |
returnValue | যেকোনো | এপিআইয়ের জন্য ফিরে আসার মান বা এপিআইয়ের জায়গায় ডাকা একটি ফাংশন। যদি returnValue কোনও ফাংশন হয় তবে সেই ফাংশনটি স্যান্ডবক্সড এপিআইয়ের জায়গায় বলা হয়; যদি returnValue কোনও ফাংশন ব্যতীত অন্য কিছু হয় তবে সেই মানটি স্যান্ডবক্সযুক্ত এপিআইয়ের জায়গায় ফিরে আসে। |
উদাহরণ
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
mockObject
mockObject
এপিআই আপনাকে স্যান্ডবক্সযুক্ত এপিআইগুলির আচরণকে ওভাররাইড করতে দেয় যা কোনও বস্তু ফিরিয়ে দেয়। এপিআই টেমপ্লেট কোডে ব্যবহার করা নিরাপদ তবে এটি কেবল পরীক্ষার মোডে কার্যকর। প্রতিটি পরীক্ষা চালানোর আগে মকগুলি পুনরায় সেট করা হয়।
বাক্য গঠন
mockObject(apiName, objectMock);
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
apiName | স্ট্রিং | উপহাস করার জন্য এপিআই এর নাম; require() |
objectMock | বস্তু | এপিআইয়ের জন্য ফিরে আসার মান বা এপিআইয়ের জায়গায় ডাকা একটি ফাংশন। অবশ্যই একটি বস্তু হতে হবে। |
উদাহরণ
const storage = {};
let firestoreId = 1;
function asTestPromise(result) {
return {
then: (callback) => callback(result)
};
}
mockObject('Firestore', {
write: (collection, input) => {
storage[collection + '/' + (++firestoreId)] = input;
return asTestPromise(firestoreId);
},
read: (document) => asTestPromise({data: storage[document]})
});
runCode
প্রদত্ত ইনপুট ডেটা অবজেক্টের সাথে বর্তমান পরীক্ষার পরিবেশে টেমপ্লেটের কোডটি চালায়, অর্থাত্ কোড ট্যাবের সামগ্রী।
বাক্য গঠন
runCode(data)
পরামিতি
প্যারামিটার | টাইপ | বর্ণনা |
---|---|---|
data | বস্তু | পরীক্ষায় ব্যবহৃত ডেটা অবজেক্ট। |
ফেরত মূল্য
ভেরিয়েবল টেম্পলেটগুলির জন্য একটি ভেরিয়েবলের মান প্রদান করে; অন্যান্য সমস্ত টেম্পলেট ধরণের জন্য undefined
ফেরত দেয়।
উদাহরণ
runCode({field1: 123, field2: 'value'});