این سند به تشریح API ها برای برچسب گذاری سمت سرور می پردازد.
addEventCallback
یک تابع فراخوانی را ثبت می کند که در پایان یک رویداد فراخوانی می شود. زمانی که همه تگهای رویداد اجرا شدند، تماس برگشتی فراخوانی میشود. به callback دو مقدار داده میشود: شناسه ظرفی که تابع را فراخوانی میکند و یک شی که حاوی اطلاعات مربوط به رویداد است.
هنگامی که این API در یک برچسب استفاده می شود، به رویداد فعلی مرتبط می شود. هنگامی که این API در یک کلاینت استفاده می شود، باید با استفاده از تابع bindToEvent
runContainer
API به یک رویداد خاص متصل شود. برای جزئیات بیشتر به مثال مراجعه کنید.
نحو
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 یک استثنا ایجاد می کند (مثلاً اگر در یک فراخوانی غیر همگام مانند در callLater
یا تابع runContainer
onComplete
فراخوانی شود).
یک کلاینت باید قبل از فراخوانی runContainer
API درخواست را با استفاده از این API ادعا کند.
مثال
const claimRequest = require('claimRequest');
claimRequest();
نحو
claimRequest();
مجوزهای مرتبط
هیچ یک.
computeEffectiveTldPlusOne
دامنه موثر سطح بالای + 1 (eTLD+1) دامنه یا URL داده شده را برمی گرداند. 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 | رشته | دامنه یا نشانی اینترنتی که بر روی آن eTLD+1 محاسبه شود. |
مجوزهای مرتبط
هیچ یک.
createRegex
یک نمونه regex جدید ایجاد می کند و آن را در یک شیء پیچیده شده برمی گرداند. شما نمی توانید مستقیماً به regex دسترسی پیدا کنید. با این حال، می توانید آن را به testRegex
API، String.replace()
, String.match()
و String.search()
ارسال کنید.
اگر regex نامعتبر باشد یا Re2 در سرور در دسترس نباشد، null
برمیگرداند.
این API از پیاده سازی Re2 استفاده می کند. تصویر سرور Docker باید در نسخه 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 | رشته | یک رشته اختیاری حاوی پرچمهایی برای regex در حال ایجاد. «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 | رشته | یک 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
استفاده میشود، یک سرصفحه مجوز برای APIهای Google Cloud را شامل میشود. این API از Application Default Credentials برای یافتن خودکار اعتبار از محیط سرور استفاده می کند.
مثال
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 | آرایه | آرایهای از دامنههای API Google OAuth 2.0 برای درخواست دسترسی. |
مجوزهای مرتبط
به مجوز 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' اسکریپت Google Analytics را از https://www.google-analytics.com/analytics.js واکشی می کند.گزینه 'GTAG' اسکریپت برچسب سایت جهانی (gtag.js) را از https://www.googletagmanager.com/gtag/js واکشی می کند.گزینه 'GTM' اسکریپت مدیر برچسب گوگل را از https://www.googletagmanager.com/gtm.js واکشی می کند. |
options | هدف - شی | گزینه های درخواست اختیاری برای گزینه های پشتیبانی شده به زیر مراجعه کنید. |
گزینه ها
گزینه | تایپ کنید | شرح |
---|---|---|
id | رشته | قابل استفاده برای 'GTAG' با شناسه اندازهگیری gtag و 'GTM' با شناسه محفظه وب (مثلاً GTM-XXXX). |
debug | هر | اگر درست باشد، نسخه اشکال زدایی اسکریپت اندازه گیری را درخواست کرده و برمی گرداند. |
timeout | عدد | مهلت درخواست در میلی ثانیه؛ مقادیر غیر مثبت نادیده گرفته می شوند. اگر زمان درخواست به پایان برسد، تماس برگشتی با undefined برای مقدار اسکریپت و {} برای شی فوق داده فراخوانی می شود. |
کلیدهای گزینه ناشناس نادیده گرفته می شوند.
مجوزهای مرتبط
به مجوز send_http
نیاز دارد. مجوز باید طوری پیکربندی شود که اجازه دسترسی به حداقل موارد زیر را بدهد:
- Google Domains را مجاز کنید
getRemoteAddress
با خواندن سرصفحههای درخواست مانند Forwarded و X-Forwarded، یک نمایش رشتهای از آدرس IP که در آن درخواست منشا گرفته است، به عنوان مثال 12.345.67.890
برای IPv4 یا 2001:0db8:85a3:0:0:8a2e:0370:7334
برای IPv6 برمیگرداند. برای. توجه: این API بهترین تلاش را برای کشف IP مبدا انجام می دهد، اما نمی تواند تضمین کند که نتیجه دقیق است.
نحو
getRemoteAddress();
مجوزهای مرتبط
به مجوز read_request
نیاز دارد. مجوز باید طوری پیکربندی شود که اجازه دسترسی به حداقل موارد زیر را بدهد:
- هدرهای
Forwarded
وX-Forwarded-For
- آدرس IP راه دور
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 ظرف سرور را از مسیر حذف می کند. برای مثال، اگر نشانی وب محفظه سرور 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
یک امضای رمزگذاری شده را با استفاده از کد احراز هویت پیام مبتنی بر هش (HMAC) با SHA-256 محاسبه میکند. به طور پیش فرض برای رمزگذاری base64url
.
برای استفاده از این API، متغیر محیطی SGTM_CREDENTIALS
را روی سرور روی مسیر فایل کلید JSON کدگذاری شده UTF-8 با فرمت زیر تنظیم کنید:
{
"key1": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5",
"key2": "OTg3NjU0MzIxMHp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh",
...
}
مقادیر، کلیدهای HMAC با کدگذاری پایه 64 هستند.
مثال
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
آرگومان(های) خود را در کنسول ثبت می کند.
این گزارشها در Logs Explorer در Google Cloud Console قابل مشاهده هستند. از Logs Explorer، query logName =~ "stdout"
را اجرا کنید تا ورودی های گزارش ایجاد شده توسط این API را ببینید.
مثال
const logToConsole = require('logToConsole');
const that = 123;
const those = { ... };
logToConsole('that is: ', that, ' and those is: ', those);
نحو
logToConsole(argument1[, argument2, ...]);
مولفه های
API یک یا چند آرگومان می گیرد که هر کدام در صورت لزوم به یک رشته تبدیل می شود و به کنسول وارد می شود.
مجوزهای مرتبط
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 | رشته | URL کاملی که تجزیه خواهد شد. |
مجوزهای مرتبط
هیچ یک.
returnResponse
پاسخی را که قبلاً توسط الگوهای دیگر تنظیم شده بود با استفاده از APIهایی که پاسخ را تغییر میدهند، از جمله setCookie ، setPixelResponse ، setResponseBody ، setResponseHeader ، و setResponseStatus ، صاف میکند. پیشفرض کد وضعیت HTTP 200، متن خالی و بدون سرصفحه.
توصیه می شود که این API از یک الگوی مشتری استفاده شود.
نحو
returnResponse();
مثال
مثال runContainer
را ببینید.
مجوزهای مرتبط
runContainer
منطق کانتینر (متغیرها، محرکها، برچسبها) را در محدوده یک رویداد اجرا میکند. اگر این API در حین اجرای کانتینر فراخوانی شود، کانتینر دوباره اجرا می شود.
تماسهای onComplete
و onStart
تابعی به نام bindToEvent
را دریافت میکنند. از bindToEvent
برای اجرای یک API در زمینه رویداد استفاده کنید. برای جزئیات بیشتر به مثال 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
یک رویداد واحد را با استفاده از Common Event Data به Google Analytics ارسال میکند و قولی را برمیگرداند که به یک شی با یک کلید location
حل میشود یا به یک شی با یک کلید reason
رد میشود. مقصد، Universal Analytics یا 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 Domains را مجاز کنید
sendHttpGet
یک درخواست HTTP GET به URL مشخص شده میدهد و قولی را برمیگرداند که پس از تکمیل یا اتمام درخواست، نتیجه را برطرف میکند.
نتیجه حل شده یک شی حاوی سه کلید است: 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 | هدف - شی | موضوع مجوز اختیاری از تماس با getGoogleAuth برای اضافه کردن سرصفحههای مجوز هنگام درخواست به googleapis.com . |
مجوزهای مرتبط
sendHttpRequest
یک درخواست HTTP به URL مشخص شده میدهد و قولی را برمیگرداند که پس از تکمیل یا اتمام درخواست، با پاسخ برطرف میشود.
نتیجه حل شده یک شی حاوی سه کلید است: 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 | هدف - شی | موضوع مجوز اختیاری از تماس با getGoogleAuth برای اضافه کردن سرصفحههای مجوز هنگام درخواست به googleapis.com . |
مجوزهای مرتبط
sendPixelFromBrowser
دستوری را به مرورگر ارسال می کند تا URL ارائه شده را به عنوان تگ <img>
بارگیری کند. این پروتکل فرمان در برچسب های گوگل برای GA4 و Google Analytics: GA Event تگ های وب پشتیبانی می شود. شما باید URL ظرف سرور را پیکربندی کنید. برای جزئیات بیشتر به دستورالعمل ها مراجعه کنید.
اگر درخواست ورودی از پروتکل فرمان پشتیبانی نکند، یا اگر پاسخ قبلاً flush شده باشد، این 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 | هدف - شی | ویژگیهای کوکی اختیاری: دامنه ، انقضا ، دامنه بازگشت ، httpOnly ، حداکثر ، مسیر ، امن ، و sameSite . ( گزینه ها را در زیر ببینید.) |
noEncode | بولی | اگر درست باشد، مقدار کوکی کدگذاری نمی شود. پیش فرض ها به false . |
دامنه: میزبانی که کوکی به آن ارسال خواهد شد. اگر روی مقدار ویژه "auto" تنظیم شود، میزبان به طور خودکار با استفاده از استراتژی زیر محاسبه می شود:
- eTLD+1 سرصفحه
Forwarded
، در صورت وجود. - eTLD+1 هدر
X-Forwarded-Host
، در صورت وجود. - eTLD+1 سربرگ
Host
.
- eTLD+1 سرصفحه
expires : حداکثر طول عمر کوکی. این باید یک رشته تاریخ با فرمت UTC باشد، به عنوان مثال "شنبه، 26 اکتبر 1985 08:21:00 GMT". اگر هر دو
expires
وmax-age
تعیین شده باشد،max-age
اولویت دارد.httpOnly : در صورت
true
، جاوا اسکریپت را از دسترسی به کوکی منع می کند.max-age : تعداد ثانیه تا زمان انقضای کوکی. یک عدد صفر یا منفی، کوکی را فورا منقضی می کند. اگر هر دو
expires
وmax-age
تعیین شده باشد،max-age
اولویت دارد.path : مسیری که باید در URL درخواستی وجود داشته باشد، در غیر این صورت مرورگر سرصفحه کوکی را ارسال نمی کند.
امن : اگر روی
true
تنظیم شود، کوکی تنها زمانی به سرور ارسال می شود که از یک نقطه پایانیhttps:
درخواست شود.sameSite : ادعا می کند که یک کوکی نباید با درخواست های متقاطع ارسال شود. باید
'strict'
،'lax'
یا'none'
باشد.
مجوزهای مرتبط
setPixelResponse
بدنه پاسخ را روی یک GIF 1×1 تنظیم میکند، هدر Content-Type را روی «تصویر/گیف» تنظیم میکند، سرصفحههای ذخیرهسازی را طوری تنظیم میکند که عاملهای کاربر پاسخ را ذخیره نکنند، و وضعیت پاسخ را روی 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 | رشته | نام سرصفحه. نام سرصفحه HTTP به حروف بزرگ و کوچک حساس نیست، بنابراین نام سرصفحه کوچک خواهد شد. |
value | رشته تعریف نشده | مقدار هدر. اگر تهی یا تعریف نشده باشد، این هدر نامگذاری شده را از پاسخی که برگردانده می شود پاک می کند. |
مجوزهای مرتبط
به مجوز access_response
نیاز دارد. مجوز باید طوری پیکربندی شود که اجازه دسترسی به حداقل موارد زیر را بدهد:
-
headers
setResponseStatus
کد وضعیت HTTP پاسخی که برگردانده می شود را تنظیم می کند.
توجه داشته باشید که returnResponse باید برای ارسال پاسخ به مشتری فراخوانی شود.
نحو
setResponseStatus(statusCode);
مولفه های
پارامتر | تایپ کنید | شرح |
---|---|---|
statusCode | عدد | کد وضعیت HTTP که باید برگردانده شود. |
مجوزهای مرتبط
به مجوز access_response
نیاز دارد. مجوز باید طوری پیکربندی شود که اجازه دسترسی به حداقل موارد زیر را بدهد:
-
status
sha256
خلاصه SHA-256 ورودی را محاسبه می کند و یک فراخوانی با خلاصه کدگذاری شده در base64 فراخوانی می کند، مگر اینکه شی 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 | تابع | با خلاصه حاصل، کدگذاری شده در base64 فراخوانی می شود، مگر اینکه شی options کدگذاری خروجی متفاوتی را مشخص کند. |
options | هدف - شی | گزینه های اختیاری برای تعیین کدگذاری خروجی ایراد دارند. اگر مشخص شده باشد، شی باید حاوی کلید outputEncoding با مقدار یکی از base64 یا hex باشد. |
مجوزهای مرتبط
هیچ یک.
sha256Sync
خلاصه SHA-256 ورودی کدگذاری شده در base64 را محاسبه و برمی گرداند، مگر اینکه شی 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
یک شی را با روشهایی برای دسترسی به ذخیرهسازی دادههای الگو برمیگرداند. ذخیره سازی داده های الگو اجازه می دهد تا داده ها در بین اجرای یک الگو به اشتراک گذاشته شوند. دادههای ذخیرهشده در ذخیرهسازی دادههای الگو بر روی سروری که ظرف را اجرا میکند باقی میماند. در بیشتر موارد چندین سرور در حال اجرا در کانتینر هستند، بنابراین ذخیره داده ها در ذخیره سازی داده های الگو تضمین نمی کند که هر درخواست بعدی به داده ها دسترسی داشته باشد.
"داده" در نام "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
یک رشته را در برابر regex ایجاد شده از طریق createRegex
API آزمایش می کند. اگر regex مطابقت داشته باشد true
برمیگرداند. در غیر این صورت false
برمی گرداند.
Regex ایجاد شده با پرچم جهانی حالتی است. برای جزئیات به مستندات 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 کد می کند. پیشفرض کدگذاری base64 است.
نحو
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 در حالت Native پشتیبانی می کند، نه Firestore در حالت Datastore . همچنین، API فقط با استفاده از پایگاه داده پیش فرض پشتیبانی می کند.
Firestore.read
تابع Firestore.read
دادهها را از یک سند Firestore میخواند و قولی را برمیگرداند که به یک شی حاوی دو کلید حل میشود: id
و data
. اگر سند وجود نداشته باشد، قول با یک شی حاوی یک کلید reason
برابر با not_found
رد می شود.
نحو
Firestore.read(path[, options]);
پارامتر | تایپ کنید | شرح |
---|---|---|
path | رشته | مسیر سند یا مجموعه. نباید با "/" شروع یا ختم شود. |
options | هدف - شی | گزینه های درخواست اختیاری گزینه های پشتیبانی شده عبارتند از: projectId ، disableCache و تراکنش . کلیدهای گزینه ناشناخته نادیده گرفته می شوند. ( گزینه ها را در زیر ببینید.) |
پارامتر | تایپ کنید | شرح |
---|---|---|
projectId | رشته | اختیاری . شناسه پروژه Google Cloud Platform. اگر حذف شود، projectId از متغیر محیطی GOOGLE_CLOUD_PROJECT بازیابی می شود تا زمانی که تنظیمات مجوز access_firestore برای ID پروژه روی * یا GOOGLE_CLOUD_PROJECT تنظیم شده باشد. اگر ظرف سرور در Google Cloud در حال اجرا باشد، GOOGLE_CLOUD_PROJECT قبلاً روی شناسه پروژه Google Cloud تنظیم میشود. |
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 همچنان یک وعده را برمیگرداند، اما از آنجایی که نوشتهها دستهبندی میشوند، شناسه را شامل نمیشود.
نحو
Firestore.write(path, input[, options]);
مولفه های
پارامتر | تایپ کنید | شرح |
---|---|---|
path | رشته | مسیر سند یا مجموعه. نباید با "/" شروع یا ختم شود. |
input | هدف - شی | مقدار برای نوشتن در سند. اگر گزینه ادغام تنظیم شده باشد، API کلیدهای ورودی را در سند ادغام می کند. |
options | هدف - شی | گزینه های درخواست اختیاری گزینه های پشتیبانی شده عبارتند از: projectId ، ادغام و تراکنش . کلیدهای گزینه ناشناخته نادیده گرفته می شوند. ( گزینه ها را در زیر ببینید.) |
پارامتر | تایپ کنید | شرح |
---|---|---|
projectId | رشته | اختیاری . شناسه پروژه Google Cloud Platform. اگر حذف شود، projectId از متغیر محیطی GOOGLE_CLOUD_PROJECT بازیابی می شود تا زمانی که تنظیمات مجوز access_firestore برای ID پروژه روی * یا GOOGLE_CLOUD_PROJECT تنظیم شده باشد. اگر ظرف سرور در Google Cloud در حال اجرا باشد، GOOGLE_CLOUD_PROJECT قبلاً روی شناسه پروژه Google Cloud تنظیم میشود. |
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 همان است که در بالا در Firestore.read
فهرست شده است. اگر هیچ سندی وجود نداشته باشد که با شرایط پرس و جو مطابقت داشته باشد، وعده برگشتی به یک آرایه خالی حل می شود.
نحو
Firestore.query(collection, queryConditions[, options]);
پارامتر | تایپ کنید | شرح |
---|---|---|
collection | رشته | مسیر رسیدن به مجموعه نباید با "/" شروع یا ختم شود. |
queryConditions | آرایه | آرایه ای از شرایط پرس و جو هر پرس و جو به شکل یک آرایه با سه مقدار کلید ، عملگر ، و expectValue ارائه می شود. به عنوان مثال: [['id'، '<'، '5']، ['state'، '=='، 'CA']]. شرایط با هم AND می شوند تا نتیجه پرس و جو ایجاد شود. لطفاً برای لیستی از عملگرهای پرس و جوی سازگار به عملگرهای پرس و جو Firestore مراجعه کنید. |
options | هدف - شی | گزینه های درخواست اختیاری گزینه های پشتیبانی شده عبارتند از: projectId ، disableCache ، limit و تراکنش . کلیدهای گزینه ناشناخته نادیده گرفته می شوند. ( گزینه ها را در زیر ببینید.) |
پارامتر | تایپ کنید | شرح |
---|---|---|
projectId | رشته | اختیاری . شناسه پروژه Google Cloud Platform. اگر حذف شود، projectId از متغیر محیطی GOOGLE_CLOUD_PROJECT بازیابی می شود تا زمانی که تنظیمات مجوز access_firestore برای ID پروژه روی * یا GOOGLE_CLOUD_PROJECT تنظیم شده باشد. اگر ظرف سرور در Google Cloud در حال اجرا باشد، GOOGLE_CLOUD_PROJECT قبلاً روی شناسه پروژه Google Cloud تنظیم میشود. |
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 | تابع | تماس برگشتی که با شناسه تراکنش رشته ای فراخوانی می شود. شناسه تراکنش می تواند به فراخوانی های API خواندن/نوشتن/پرس و جو منتقل شود. این تابع callback باید یک وعده را برگرداند. تماس برگشتی ممکن است قبل از شکست تا سه بار اجرا شود. |
options | هدف - شی | گزینه های درخواست اختیاری تنها گزینه پشتیبانی شده projectId است. کلیدهای گزینه ناشناخته نادیده گرفته می شوند. ( گزینه ها را در زیر ببینید.) |
پارامتر | تایپ کنید | شرح |
---|---|---|
projectId | رشته | اختیاری . شناسه پروژه Google Cloud Platform. اگر حذف شود، projectId از متغیر محیطی GOOGLE_CLOUD_PROJECT بازیابی می شود تا زمانی که تنظیمات مجوز access_firestore برای ID پروژه روی * یا GOOGLE_CLOUD_PROJECT تنظیم شده باشد. اگر ظرف سرور در Google Cloud در حال اجرا باشد، GOOGLE_CLOUD_PROJECT قبلاً روی شناسه پروژه Google Cloud تنظیم میشود. |
مثال
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);
خطاهای موجود در هر تابع Firestore با یک شی حاوی یک کلید 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
تابعی را اضافه می کند که برای یک پیام از یک نوع خاص گوش می دهد. هنگامی که پیامی از آن نوع با استفاده از API sendMessage
(به طور معمول توسط یک برچسب) ارسال می شود ، پاسخ به صورت همزمان اجرا می شود. پاسخ به تماس با دو پارامتر اجرا می شود:
-
messageType:string
-
message:Object
اگر پاسخ به تماس در مشتری اضافه شود ، پاسخ به تماس در تمام رویدادهایی که مشتری ایجاد می کند پیام دریافت می کند. اگر پاسخ به تماس باید فقط از یک رویداد خاص پیام دریافت کند ، این API را با استفاده از bindToEvent
در عملکرد onStart
runContainer
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
دارد. مجوز باید حداقل برای اجازه پیکربندی شود:
- نوع پیام با
Usage
ازlisten
یاlisten_and_send
.
hasMessageListener
اگر شنونده پیام برای نوع پیام داده شده اضافه شده باشد ، درست برمی گردد. در غیر این صورت نادرست است.
نحو
const hasMessageListener = require('hasMessageListener');
hasMessageListener('send_pixel');
مجوزهای مرتبط
هیچ یک.
sendMessage
پیام از نوع مشخص شده را به یک شنونده ثبت شده ارسال می کند. این می تواند برای ارسال پیام از یک برچسب به مشتری که ظرف را اداره می کند استفاده شود.
نحو
const sendMessage = require('sendMessage');
sendMessage('send_pixel', {url: 'https://analytics.example.com/collect'});
مولفه های
پارامتر | تایپ کنید | شرح |
---|---|---|
messageType | رشته | نوع پیام برای ارسال. اگر مقدار یک رشته نباشد ، به یک رشته مجبور می شود. |
message | هدف - شی | پیام ارسال اگر پیام یک شیء نباشد ، API هیچ کاری نمی کند. |
مجوزهای مرتبط
نیاز به مجوز use_message
دارد. مجوز باید حداقل برای اجازه پیکربندی شود:
- یک نوع پیام با
Usage
ازlisten_and_send
یاsend
.
Object
یک شیء را که روشهای Object
ارائه می دهد ، برمی گرداند.
روش keys()
رفتار استاندارد کتابخانه را ارائه می دهد. رفتارهای کلیدی () . این مجموعه ای از نام های دارایی قابل توجه یک شیء خاص را به همان ترتیب که A for...in...
حلقه می کند ، برمی گرداند. اگر مقدار ورودی یک شی نباشد ، به یک شیء اجبار می شود.
روش values()
رفتار استاندارد کتابخانه . Values () رفتار () را ارائه می دهد. این مجموعه ای از مقادیر خاص خاص خاص خود را به همان ترتیب که A for...in...
حلقه می کند ، برمی گرداند. اگر مقدار ورودی یک شی نباشد ، به یک شیء اجبار می شود.
روش entries()
رفتار استاندارد کتابخانه را ارائه می دهد. رفتار () . این مجموعه از ویژگی های قابل توجه خود یک شیء خاص [key, value]
را به همان ترتیب که A for...in...
حلقه می کند ، باز می گرداند. اگر مقدار ورودی یک شیء نباشد ، به یک شیء مجبور می شود.
روش freeze()
رفتار استاندارد کتابخانه را ارائه می دهد . رفتار Freeze () . دیگر یک شیء یخ زده قابل تغییر نیست. انجماد یک شی مانع از افزودن خصوصیات جدید به آن ، حذف خواص موجود و تغییر مقادیر خاصیت موجود در آن می شود. freeze()
همان شیء را که در آن منتقل شده است باز می گرداند. یک استدلال بدوی یا تهی به گونه ای رفتار می شود که گویی یک شی یخ زده است و بازگردانده خواهد شد.
روش 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.freeze
پارامتر | تایپ کنید | شرح |
---|---|---|
عینی | هر | شیء یخ زدن. اگر ورودی یک شی نباشد ، به عنوان یک شی یخ زده رفتار می شود. |
شیء. delete
پارامتر | تایپ کنید | شرح |
---|---|---|
عینی | هر | شیء که کلید آن برای حذف است. |
کلیدی | رشته | کلید سطح بالا برای حذف. |
مثال
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 | تابع | تابعی که با دو کارکرد فراخوانی می شود - حل و فصل کنید. وعده برگشتی هنگامی که پارامتر مربوطه فراخوانی می شود ، برطرف یا رد می شود. اگر Resolver تابعی نباشد ، خطایی را پرتاب می کند. |
مثال
const Promise = require('Promise');
return Promise.create((resolve, reject) => {
// Do asynchronous work that eventually calls resolve() or reject()
});
مجوزهای مرتبط
هیچ یک.
API تست
این API ها با تست های JavaScript Sandboxed برای ساخت تست برای الگوهای سفارشی در Google Tag Manager کار می کنند. این API های تست نیازی به بیانیه require()
نیاز ندارند. [در مورد تست های الگوی سفارشی بیشتر بدانید].
assertApi
یک شیء Matcher را باز می گرداند که می تواند برای بیان صریح در مورد API داده شده استفاده شود.
نحو
assertApi(apiName)
مولفه های
پارامتر | تایپ کنید | شرح |
---|---|---|
apiName | رشته | نام API برای بررسی ؛ همان رشته ای که برای 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
API پس از کتابخانه [حقیقت] Google مدل سازی شده است. این شیء را برمی گرداند که می تواند برای بیان صریح در مورد ارزش یک موضوع مورد استفاده قرار گیرد. شکست ادعای بلافاصله آزمون را متوقف می کند و آن را به صورت شکست خورده علامت گذاری می کند. با این حال ، عدم موفقیت در یک آزمون بر سایر موارد آزمون تأثیر نمی گذارد.
نحو
assertThat(actual, opt_message)
مولفه های
پارامتر | تایپ کنید | شرح |
---|---|---|
actual | هر | مقدار استفاده در بررسی های مسلط. |
opt_message | رشته | در صورت عدم موفقیت ، پیام اختیاری برای چاپ. |
تطبیق کننده
تطبیق | شرح |
---|---|
isUndefined() | ادعا می کند که موضوع undefined است. |
isDefined() | ادعا می کند که موضوع undefined است. |
isNull() | ادعا می کند که موضوع null است. |
isNotNull() | ادعا می کند که موضوع null نیست. |
isFalse() | ادعا می کند که موضوع false است. |
isTrue() | ادعا می کند که موضوع true است. |
isFalsy() | ادعا می کند که موضوع فال است. مقادیر فال undefined ، null ، false ، NaN ، 0 و '' (رشته خالی). |
isTruthy() | ادعا می کند که موضوع درست است. مقادیر فال undefined ، null ، false ، NaN ، 0 و '' (رشته خالی). |
isNaN() | ادعا می کند که موضوع NAN ارزش است. |
isNotNaN() | ادعا می کند که موضوع علاوه بر NAN ، ارزش دارد. |
isInfinity() | ادعا می کند که موضوع بی نهایت مثبت یا منفی است. |
isNotInfinity() | ادعا می کند که موضوع علاوه بر بی نهایت مثبت یا منفی ، هر مقدار ارزش دارد. |
isEqualTo(expected) | ادعا می کند که موضوع برابر با مقدار داده شده است. این یک مقایسه ارزش است ، نه یک مقایسه مرجع. محتوای اشیاء و آرایه ها به صورت بازگشتی مقایسه می شوند. |
isNotEqualTo(expected) | ادعا می کند که موضوع برابر با مقدار داده شده نیست. این یک مقایسه ارزش است ، نه یک مقایسه مرجع. محتوای اشیاء و آرایه ها به صورت بازگشتی مقایسه می شوند. |
isAnyOf(...expected) | ادعا می کند که موضوع برابر با یکی از مقدار داده شده است. این یک مقایسه ارزش است ، نه یک مقایسه مرجع. محتوای اشیاء و آرایه ها به صورت بازگشتی مقایسه می شوند. |
isNoneOf(...expected) | ادعا می کند که موضوع با هیچ یک از مقادیر داده شده برابر نیست. این یک مقایسه ارزش است ، نه یک مقایسه مرجع. محتوای اشیاء و آرایه ها به صورت بازگشتی مقایسه می شوند. |
isStrictlyEqualTo(expected) | ادعا می کند که موضوع کاملاً برابر ( === ) با مقدار داده شده است. |
isNotStrictlyEqualTo(expected) | ادعا می کند که موضوع کاملاً برابر نیست ( !== ) با مقدار داده شده. |
isGreaterThan(expected) | ادعا می کند که موضوع بیشتر از ( > ) مقدار داده شده در یک مقایسه سفارش داده شده است. |
isGreaterThanOrEqualTo(expected) | ادعا می کند که موضوع بیشتر از یا مساوی ( >= ) مقدار داده شده در یک مقایسه سفارش داده شده است. |
isLessThan(expected) | ادعا می کند که موضوع کمتر از ( < ) مقدار داده شده در یک مقایسه سفارش داده شده است. |
isLessThanOrEqualTo(expected) | ادعا می کند که موضوع کمتر یا مساوی با ( <= ) مقدار داده شده در یک مقایسه مرتب شده است. |
contains(...expected) | ادعا می کند که موضوع آرایه یا رشته ای است که شامل تمام مقادیر داده شده به هر ترتیب است. این یک مقایسه ارزش است ، نه یک مقایسه مرجع. محتوای اشیاء و آرایه ها به صورت بازگشتی مقایسه می شوند. |
doesNotContain(...expected) | ادعا می کند که موضوع آرایه یا رشته ای است که حاوی هیچ یک از مقادیر داده شده نیست. این یک مقایسه ارزش است ، نه یک مقایسه مرجع. محتوای اشیاء و آرایه ها به صورت بازگشتی مقایسه می شوند. |
containsExactly(...expected) | ادعا می کند که موضوع آرایه ای است که شامل تمام مقادیر داده شده به هر ترتیب و هیچ ارزش دیگری است. این یک مقایسه ارزش است ، نه یک مقایسه مرجع. محتوای اشیاء و آرایه ها به صورت بازگشتی مقایسه می شوند. |
doesNotContainExactly(...expected) | ادعا می کند که موضوع آرایه ای است که شامل مجموعه ای متفاوت از مقادیر از مقادیر داده شده به هر ترتیب است. این یک مقایسه ارزش است ، نه یک مقایسه مرجع. محتوای اشیاء و آرایه ها به صورت بازگشتی مقایسه می شوند. |
hasLength(expected) | ادعا می کند که موضوع آرایه یا رشته ای با طول داده شده است. اگر مقدار آرایه یا رشته ای نباشد ، این ادعا همیشه شکست می خورد. |
isEmpty() | ادعا می کند که موضوع آرایه یا رشته ای خالی است (طول = 0). اگر مقدار آرایه یا رشته ای نباشد ، این ادعا همیشه شکست می خورد. |
isNotEmpty() | ادعا می کند که موضوع آرایه یا رشته ای است که خالی نیست (طول> 0). اگر مقدار آرایه یا رشته ای نباشد ، این ادعا همیشه شکست می خورد. |
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 | رشته | متن پیام خطای اختیاری. |
مثال
fail('This test has failed.');
mock
API mock
به شما امکان می دهد تا رفتار API های ماسه ای را نادیده بگیرید. API مسخره برای استفاده در کد الگو بی خطر است ، اما در حالت آزمایش غیر عملیاتی است. قبل از اجرای هر آزمون ، مسخره ها دوباره تنظیم می شوند.
نحو
mock(apiName, returnValue);
مولفه های
پارامتر | تایپ کنید | شرح |
---|---|---|
apiName | رشته | نام API برای مسخره کردن ؛ همان رشته ای که برای require() |
returnValue | هر | مقدار بازگشت برای API یا تابعی که به جای API نامیده می شود. اگر returnValue یک تابع است ، آن عملکرد به جای API ماسهبازی نامیده می شود. اگر returnValue چیزی غیر از یک عملکرد باشد ، این مقدار به جای API ماسهبازی بازگردانده می شود. |
مثال ها
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
runCode
کد را برای الگوی ، یعنی محتوای برگه کد ، در محیط آزمون فعلی با یک شیء داده ورودی داده شده اجرا می کند.
نحو
runCode(data)
مولفه های
پارامتر | تایپ کنید | شرح |
---|---|---|
data | هدف - شی | شیء داده ها در آزمون مورد استفاده قرار می گیرند. |
ارزش بازگشتی
مقدار یک متغیر را برای الگوهای متغیر برمی گرداند. برای همه انواع دیگر الگوهای undefined
برمی گردد.
مثال
runCode({field1: 123, field2: 'value'});