APIهای برچسب گذاری سمت سرور

این سند به تشریح 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.
});

مجوزهای مرتبط

read_event_metadata


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» (حرف نادیده گرفتن) پشتیبانی می‌شوند. همه شخصیت های دیگر در سکوت نادیده گرفته می شوند.

مجوزهای مرتبط

هیچ کدام

حداقل نسخه تصویر

2.0.0


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();

مجوزهای مرتبط

read_event_data


getClientName

رشته ای را برمی گرداند که حاوی نام مشتری فعلی است.

نحو

getClientName();

مجوزهای مرتبط

read_container_data


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();

مجوزهای مرتبط

read_container_data


getCookieValues

آرایه‌ای را برمی‌گرداند که حاوی مقادیر همه کوکی‌ها با نام داده شده است.

مثال

const getCookieValues = require('getCookieValues');

const lastVisit = getCookieValues('lastVisit')[0];
if (lastVisit) {
  // ...
}

نحو

getCookieValues(name[, noDecode]);

پارامترها

پارامتر تایپ کنید توضیحات
name رشته نام کوکی
noDecode بولی اگر true ، مقادیر کوکی قبل از بازگرداندن رمزگشایی نمی‌شوند. پیش فرض ها به false .

مجوزهای مرتبط

get_cookies


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);

مجوزهای مرتبط

read_event_data


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();

مجوزهای مرتبط

read_request


getRequestHeader

مقدار هدر درخواست نامگذاری شده را در صورت وجود یا undefined به صورت رشته ای برمی گرداند. اگر سرصفحه تکرار شود، مقادیر برگشتی با ', ' به یکدیگر متصل می شوند.

مثال

const getRequestHeader = require('getRequestHeader');

const host = getRequestHeader('host');

نحو

getRequestHeader(headerName);

پارامترها

پارامتر تایپ کنید توضیحات
headerName رشته نام سرصفحه. این مقدار به حروف بزرگ و کوچک حساس نیست.

مجوزهای مرتبط

read_request


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();

مجوزهای مرتبط

read_request


getRequestQueryParameter

مقدار رمزگشایی شده پارامتر رشته پرس و جو نامگذاری شده را به صورت رشته ای برمی گرداند، یا اگر پارامتر موجود نباشد، undefined . اگر پارامتر در رشته پرس و جو تکرار شود، اولین مقداری که در رشته پرس و جو ظاهر می شود، برگردانده می شود.

مثال

const getRequestQueryParameter = require('getRequestQueryParameter');

const query = getRequestQueryParameter('query');
if (query) {
  // Process query here.
}

نحو

getRequestQueryParameter(name);

پارامترها

پارامتر تایپ کنید توضیحات
name رشته نام پارامتر پرس و جو

مجوزهای مرتبط

read_request


getRequestQueryParameters

پارامترهای پرس و جو درخواست HTTP ورودی را به عنوان یک شی برمی گرداند که نام پارامترهای درخواست را به مقدار یا مقادیر مربوطه نگاشت می کند. نام پارامترها و مقادیر رمزگشایی می شوند.

مثال

const getRequestQueryParameters = require('getRequestQueryParameters');

const queryParameters = getRequestQueryParameters();
if (queryParameters['search']) {
  // Handle the search query here.
  const maxResults = queryParameters['max_results'];
}

نحو

getRequestQueryParameters();

مجوزهای مرتبط

read_request


getRequestQueryString

درخواست درخواست را به عنوان یک رشته، بدون علامت سوال اصلی، یا یک رشته خالی در صورتی که URL درخواست شامل یک رشته جستجو نباشد، برمی‌گرداند.

مثال

const getRequestQueryString = require('getRequestQueryString');

const queryString = getRequestQueryString();
if (queryString !== '') {
  // Handle the query string.
}

نحو

getRequestQueryString();

مجوزهای مرتبط

read_request


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 با فرمت زیر تنظیم کنید:

{
  "keys": {
    "key1": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5",
    "key2": "OTg3NjU0MzIxMHp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh",
    ...
  }
}

مقادیر، کلیدهای HMAC با کدگذاری پایه 64 هستند. متن JSON نباید با نشانگر ترتیب بایت شروع شود.

مثال

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 می‌شود.

مجوزهای مرتبط

use_custom_private_keys

حداقل نسخه تصویر

1.0.0


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 یک یا چند آرگومان می گیرد که هر کدام در صورت لزوم به یک رشته تبدیل می شود و به کنسول وارد می شود.

مجوزهای مرتبط

logging


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 را ببینید.

مجوزهای مرتبط

return_response


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 تابع تماسی که بلافاصله قبل از شروع شلیک برچسب ها فراخوانی می شود.

مجوزهای مرتبط

run_container


sendEventToGoogleAnalytics

یک رویداد واحد را با استفاده از Common Event Data به 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 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 .

مجوزهای مرتبط

send_http


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 .

مجوزهای مرتبط

send_http


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 رشته آدرس اینترنتی برای ارسال به مرورگر.

مجوزهای مرتبط

send_pixel_from_browser


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 .
  • 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' باشد.

مجوزهای مرتبط

set_cookie


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);
});

مجوزهای مرتبط

access_template_storage


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 را تعریف می کند. یک پارامتر اختیاری و دو پارامتر مورد نیاز وجود دارد:
  • projectId - شناسه پروژه اختیاری Google Cloud Platform. اگر حذف شود، projectId از متغیر محیطی GOOGLE_CLOUD_PROJECT بازیابی می شود تا زمانی که تنظیمات مجوز access_bigquery برای ID پروژه روی * یا GOOGLE_CLOUD_PROJECT تنظیم شده باشد. اگر ظرف سرور در Google Cloud در حال اجرا باشد، GOOGLE_CLOUD_PROJECT قبلاً روی شناسه پروژه Google Cloud تنظیم می‌شود.
  • ID datasetId - شناسه مجموعه داده BigQuery.
  • tableId - شناسه جدول 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);

مجوزهای مرتبط

access_bigquery


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 باشد، اما محدود به آن نیست.

مجوزهای مرتبط

access_firestore


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 (به طور معمول توسط یک برچسب) ارسال می شود ، پاسخ به صورت همزمان اجرا می شود. پاسخ به تماس با دو پارامتر اجرا می شود:

  1. messageType:string
  2. 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 ) یک شیء true که حتی اگر مقدار ورودی دوم ( keyToDelete ) کلید را مشخص کند ، کلید را مشخص می کند. در همه موارد دیگر 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();
});

mockObject

API mockObject به شما امکان می دهد تا رفتار API های ماسه ای را که یک شی را برمی گردانند ، نادیده بگیرید. API برای استفاده در کد قالب بی خطر است ، اما فقط در حالت تست عملیاتی است. قبل از اجرای هر آزمون ، مسخره ها دوباره تنظیم می شوند.

نحو

mockObject(apiName, objectMock);

پارامترها

پارامتر تایپ کنید توضیحات
apiName رشته نام API برای مسخره کردن ؛ همان رشته ای که برای require()
objectMock شی مقدار بازگشت برای API یا تابعی که به جای API نامیده می شود. باید یک شی باشد.

نمونه ها

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'});