مرجع API Connector Community

توابع مورد نیاز

getConfig()

گزینه های قابل پیکربندی کاربر برای رابط را برمی گرداند.

درخواست

@param {Object} request یک شی جاوا اسکریپت حاوی پارامترهای درخواست پیکربندی.

پارامتر شی جاوا اسکریپت حاوی داده هایی با ساختار زیر است:

{
  languageCode: string
}
نام زمینه تایپ کنید شرح
languageCode string کدی که نشان دهنده زبان کاربر است. این کد به صورت اختیاری می تواند برای بازگرداندن نسخه محلی از گزینه های پیکربندی برای کاربر استفاده شود. لیست کامل زبان ها و کدهای پشتیبانی شده را ببینید.
configParams هدف - شی اگر تماس قبلی با getConfig() دارای .setIsSteppedConfig(true) بود، ارائه شود. یک شی حاوی مقادیر پیکربندی ارائه شده توسط کاربر تاکنون.
درخواست مثال

مثالی از درخواست getConfig برای کاربری که زبانش روی ایتالیایی تنظیم شده است:

{
  languageCode: "it"
}

واکنش

سرویس استودیو Looker

@return {object} یک شی جاوا اسکریپت که پیکربندی درخواست داده شده را نشان می دهد.

مثال
function getConfig(request) {
  var cc = DataStudioApp.createCommunityConnector();
  var config = cc.getConfig();

  config
      .newTextInput()
      .setId('exampleTextInput')
      .setName('Single line text')
      .setHelpText('Helper text for single line text')
      .setPlaceholder('Lorem Ipsum');

  config
      .newTextArea()
      .setId('exampleTextArea')
      .setName('Text area')
      .setHelpText('Helper text for text area')
      .setPlaceholder('Lorem Ipsum');

  config
      .newSelectSingle()
      .setId('exampleSelectSingle')
      .setName('Select single')
      .setHelpText('Helper text for select single')
      .setAllowOverride(true)
      .addOption(config.newOptionBuilder().setLabel('Lorum foo').setValue('lorem'))
      .addOption(config.newOptionBuilder().setLabel('Ipsum Bar').setValue('ipsum'))
      .addOption(config.newOptionBuilder().setLabel('Sit').setValue('amet'));

  config
      .newSelectMultiple()
      .setId('exampleSelectMultiple')
      .setName('Select multiple')
      .setHelpText('Helper text for select multiple')
      .addOption(config.newOptionBuilder().setLabel('Lorum foo').setValue('lorem'))
      .addOption(config.newOptionBuilder().setLabel('Ipsum Bar').setValue('ipsum'))
      .addOption(config.newOptionBuilder().setLabel('Sit').setValue('amet'));

  config
      .newCheckbox()
      .setId('exampleCheckbox')
      .setName('This is a checkbox')
      .setHelpText('Helper text for checkbox');

  config
      .newInfo()
      .setId('exampleInfo')
      .setText('Examle instructions text used in Info')

  config.setDateRangeRequired(true);
  config.setIsSteppedConfig(false);

  return config.build();
}

میراث

@return {object} یک شی جاوا اسکریپت نشان دهنده پیکربندی رابط است که باید به کاربر نمایش داده شود.

پاسخ شامل پیکربندی کانکتور با ساختار زیر است:

  {
    configParams: [
      {
        type: string(ConfigType),
        name: string,
        displayName: string,
        helpText: string,
        placeholder: string,
        isDynamic: boolean,
        parameterControl: {
          allowOverride: boolean
        },
        options: [
          {
            label: string,
            value: string
          }
        ]
      }
    ],
    dateRangeRequired: boolean,
    isSteppedConfig: boolean
  }

نام زمینه تایپ کنید شرح
configParams[] object کاربر مقادیر مورد نیاز کانکتور را ارائه کرد. هر مورد نشان دهنده یک فیلد ورودی کاربر است.
configParams[].type string ( ConfigType ) نوع فیلد ورودی
configParams[].name string شناسه فیلد ورودی
این باید یک رشته غیر خالی و بدون فاصله باشد.
configParams[].displayName string برچسب متنی برای فیلد ورودی.
configParams[].helpText string متنی که باید نمایش داده شود تا در مورد مقدار مورد انتظار فیلد به کاربر کمک کند.
configParams[].placeholder string فقط زمانی استفاده می شود که type TEXTINPUT یا TEXTAREA باشد
متن جای‌بانی که به‌عنوان یک اشاره کوتاه برای توصیف مقدار مورد انتظار فیلد ورودی استفاده می‌شود.
configParams[].isDynamic boolean اینکه آیا این فیلد برای پر کردن پویا ورودی‌های پیکربندی بعدی استفاده می‌شود یا نه. پیش فرض به false
configParams[].parameterControl.allowOverride boolean نادیده گرفتن پارامتر را فعال می کند. اگر روی true تنظیم شود، سازندگان منبع داده می توانند این را برای ویرایشگرهای گزارش فعال کنند
مقدار پیش فرض برای allowOverride false است. اگر نمی‌خواهید overriding را برای یک پارامتر فعال کنید، می‌توانید ویژگی allowOverride را حذف کنید.
configParams[].options[] list فقط از type SELECT استفاده می شود
این لیستی از همه گزینه ها را ارائه می دهد.
options[].label string برچسب برای گزینه.
options[].value string مقدار برای گزینه.
این باید یک رشته غیر خالی و بدون فاصله یا کاما باشد.
dateRangeRequired boolean اگر true ، یک محدوده تاریخ برای درخواست‌های getData() ارائه می‌شود. به طور پیش فرض، 28 روز گذشته به استثنای today به عنوان محدوده تاریخ انتخاب می شود. این باید برای APIهای داده ای تنظیم شود که به یک محدوده تاریخ برای همراهی پرس و جوها نیاز دارند، و اگر درخواست ها به API های داده به دلیل محدود کردن محدوده تاریخ کارآمدتر باشند، باید تنظیم شود. پیش فرض ها به false .
isSteppedConfig boolean اگر true ، استودیوی Looker از کاربر می‌خواهد به مجموعه سؤالات پیکربندی فعلی پاسخ دهد، سپس آن سؤالات پاسخ داده شده را به تماس‌های بعدی به getConfig() برگرداند. اگر false (پیش‌فرض)، کاربر می‌تواند روی اتصال کلیک کرده و به صفحه طرحواره ادامه دهد.

نمونه پاسخ

مثال زیر پیکربندی یک کادر متنی تک خطی، یک ناحیه متنی، یک تک انتخابی، یک چند انتخابی، یک چک باکس و یک جعبه اطلاعات را نشان می دهد. مقدار تک انتخابی را می توان در گزارش ها نادیده گرفت.

  {
    configParams: [
      {
        type: "TEXTINPUT",
        name: "exampleTextInput",
        displayName: "Single line text",
        helpText: "Helper text for single line text",
        placeholder: "Lorem Ipsum"
      },
      {
        type: "TEXTAREA",
        name: "exampleTextArea",
        displayName: "Text area",
        helpText: "Helper text for text area",
        placeholder: "Lorem Ipsum"
      },
      {
        type: "SELECT_SINGLE",
        name: "exampleSELECT_SINGLE",
        displayName: "Select single",
        helpText: "Helper text for select-single",
        parameterControl: {
          allowOverride: true
        },
        options: [
          {
            label: "Lorem foo",
            value: "lorem"
          },
          {
            label: "Ipsum bar",
            value: "ipsum"
          },
          {
            label: "Sit",
            value: "amet"
          }
        ]
      },
      {
        type: "SELECT_MULTIPLE",
        name: "exampleSELECT_MULTIPLE",
        displayName: "Select multiple",
        helpText: "Helper text for select-multiple",
        options: [
          {
            label: "Lipsum",
            value: "lipsum"
          },
          {
            label: "Foo Bar",
            value: "foobar"
          },
          {
            label: "Dolor Sit",
            value: "amet"
          }
        ]
      },
      {
        type: "CHECKBOX",
        name: "exampleCheckbox",
        displayName: "This is a checkbox",
        helpText: "Helper text for checkbox",
      },
      {
        type: "INFO",
        name: "exampleInfo",
        text: "Example instructions text used in Info"
      }
    ],
    dateRangeRequired: false
  }

getSchema()

طرح واره را برای درخواست داده شده برمی گرداند. این اطلاعات در مورد نحوه سازماندهی داده های رابط ارائه می دهد. برای هر قسمت شامل جزئیاتی مانند شناسه ها، نام ها، انواع داده ها و غیره است.

درخواست

@param {Object} request یک شی جاوا اسکریپت حاوی پارامترهای درخواست طرحواره.

پارامتر شی جاوا اسکریپت حاوی داده هایی با ساختار زیر است:

{
  "configParams": object
}
نام زمینه تایپ کنید شرح
configParams Object یک شی جاوا اسکریپت که کاربر حاوی مقادیری برای پارامترهای پیکربندی تعریف شده توسط رابط است.
درخواست مثال

مثالی از یک شی درخواست getSchema :

{
  "configParams": {
    "exampleSelectMultiple": "foobar,amet",
    "exampleSelectSingle": "ipsum",
    "exampleTextInput": "Lorem Ipsum Dolor Sit Amet",
    "exampleTextArea": "NA",
    "exampleCheckbox": "true"
  }
}

واکنش

سرویس استودیو Looker

@return {object} یک شی جاوا اسکریپت که طرحواره درخواست داده شده را نشان می دهد.

مثال
function getSchema(request) {
  var cc = DataStudioApp.createCommunityConnector();
  var fields = cc.getFields();
  var types = cc.FieldType;

  var created = fields.newDimension()
      .setId('Created')
      .setName('Date Created')
      .setDescription('The date that this was created')
      .setType(types.YEAR_MONTH_DAY)
      .setGroup('Date');

  var amount = fields.newMetric()
      .setId('Amount')
      .setName('Amount (USD)')
      .setDescription('The cost in US dollars')
      .setType(types.CURRENCY_USD)
      .setIsHidden(true);

  var amountper = fields.newMetric()
      .setId('AmountPer')
      .setName('Amount Per Dimension')
      .setDescription('The summed cost')
      .setType(types.CURRENCY_USD)
      .setGroup('Money')
      .setFormula('sum($Amount)');

  var probability = fields.newMetric()
      .setId('Probability')
      .setName('Probability (Close rate)')
      .setDescription('The probability that a store closes')
      .setType(types.PERCENT);

  var opportunityname = fields.newDimension()
      .setId('OpportunityName')
      .setName('Opportunity Name')
      .setDescription('The name of the opportunity')
      .setType(types.TEXT);

  var isverified = fields.newDimension()
      .setId('IsVerified')
      .setName('Verified Status')
      .setDescription('Whether or not the store is verified')
      .setType(types.BOOLEAN);

  var company = fields.newDimension()
      .setId('Company')
      .setName('Incorporated Company Name')
      .setDescription('The name of the company the store belongs to')
      .setType(types.TEXT);

  fields.setDefaultMetric(amountper.getId());
  fields.setDefaultDimension(created.getId());

  return { 'schema': fields.build() };
}

BigQuery

@return {object} یک شی جاوا اسکریپت که پیکربندی کوئری BigQuery را نشان می‌دهد.

مثال
var bqTypes = DataStudioApp.createCommunityConnector().BigQueryParameterType;
var configuration = DataStudioApp.createCommunityConnector().newBigQueryConfig()
    .setBillingProjectId('billingProjectId')
    .setQuery('myQueryString')
    .setUseStandardSql(true)
    .setAccessToken('myAccessToken')
    .addQueryParameter('myUrlParameterName', bqTypes.STRING, 'myUrlParameterValue')
    .build();

میراث

@return {object} یک شی جاوا اسکریپت که طرحواره درخواست داده شده را نشان می دهد.

تابع طرحواره را با ساختار زیر برمی گرداند:

  {
    "schema": [
      {
        object(Field)
      }
    ]
  }

نام زمینه تایپ کنید شرح
schema[] object( Field ) طرحی برای درخواست داده شده که شامل جزئیات مربوط به هر فیلد است.

نمونه پاسخ

  {
    "schema": [
      {
        "name": "Created",
        "label": "Date Created",
        "description": "The date that this was created",
        "dataType": "STRING",
        "group": "Date",
        "isDefault": true,
        "semantics": {
          "conceptType": "DIMENSION",
          "semanticGroup": "DATE_AND_TIME",
          "semanticType": "YEAR_MONTH_DAY",
          "isReaggregatable": false
        }
      },
      {
        "name": "Amount",
        "label": "Amount (USD)",
        "description": "The cost in US dollars",
        "dataType": "NUMBER",
        "isHidden": true,
        "semantics": {
          "conceptType": "METRIC",
          "semanticGroup": "CURRENCY",
          "semanticType": "CURRENCY_USD",
        }
      },
      {
        "name": "AmountPer",
        "label": "Amount Per Dimension",
        "description": "The summed cost",
        "dataType": "NUMBER",
        "group": "Money",
        "formula": "sum(Amount)",
        "isDefault": true,
        "semantics": {
          "conceptType": "METRIC",
          "semanticGroup": "CURRENCY",
          "semanticType": "CURRENCY_USD",
          "isReaggregatable": true
        }
      },
      {
        "name": "Probability",
        "label": "Probability (Close rate)",
        "description": "The probability that a store closes",
        "dataType": "NUMBER",
        "semantics": {
          "conceptType": "METRIC",
          "semanticGroup": "NUMERIC",
          "semanticType": "PERCENT",
          "isReaggregatable": false
        }
      },
      {
        "name": "OpportunityName",
        "label": "Opportunity Name",
        "description": "The name of the opportunity",
        "dataType": "STRING",
        "semantics": {
          "conceptType": "DIMENSION",
          "semanticType": "TEXT",
          "isReaggregatable": false
        }
      },
      {
        "name": "IsVerified",
        "label": "Verified Status",
        "description": "Whether or not the store is verified",
        "dataType": "BOOLEAN",
        "semantics": {
          "conceptType": "DIMENSION",
          "semanticType": "BOOLEAN",
          "isReaggregatable": false
        }
      },
      {
        "name": "Company",
        "label": "Incorporated Company Name",
        "description": "The name of the company the store belongs to",
        "dataType": "STRING",
        "semantics": {
          "conceptType": "DIMENSION",
          "semanticType": "TEXT",
          "isReaggregatable": false
        }
      }
    ]
  }

getData()

داده های جدولی درخواست داده شده را برمی گرداند.

درخواست

@param {Object} request یک شی جاوا اسکریپت حاوی پارامترهای درخواست داده است.

پارامتر request شامل مقادیر ارائه شده توسط کاربر و اطلاعات اضافی است که می تواند برای تکمیل درخواست داده استفاده شود. دارای ساختار زیر است:

{
  "configParams": object,
  "scriptParams": {
    "sampleExtraction": boolean,
    "lastRefresh": string
  },
  "dateRange": {
    "startDate": string,
    "endDate": string
  },
  "fields": [
    {
      "name": string
    }
  ],
  "dimensionsFilters": [
    [{
      "fieldName": string,
      "values": string[],
      "type": DimensionsFilterType,
      "operator": Operator
    }]
  ]
}
نام تایپ کنید شرح
configParams object یک شی حاوی کاربر مقادیری را برای پارامترهای پیکربندی تعریف شده توسط کانکتور ارائه می کند.
scriptParams ScriptParams یک شی حاوی اطلاعات مربوط به اجرای کانکتور
dateRange محدوده زمانی به طور پیش فرض، محدوده تاریخ ارائه شده 28 روز گذشته به استثنای امروز خواهد بود. اگر کاربر یک فیلتر محدوده تاریخ را برای گزارش اعمال کند، محدوده تاریخ ارائه شده منعکس کننده انتخاب کاربر است.
هنگامی که sampleExtraction روی "true** تنظیم می شود، تاریخ دو روز زودتر از امروز به عنوان تاریخ شروع و پایان داده می شود.
fields[].name string نام فیلدهای درخواستی
fields[].forFilterOnly boolean فیلدی را که فقط برای فیلتر کردن درخواست استفاده می شود علامت گذاری می کند. اگر رابط شما فیلترها را اعمال می کند، فیلد را برنگردانید.
dimensionsFilters ابعاد فیلترها آرایه تو در تو از فیلترهای انتخاب شده توسط کاربر. داخلی‌ترین آرایه‌ها باید با هم OR باشند، بیرونی‌ترین آرایه‌ها باید با هم AND باشند.

محدوده زمانی

نام تایپ کنید شرح
startDate string تاریخ شروع فیلتر کردن داده ها فقط در صورتی اعمال می شود که dateRangeRequired روی true تنظیم شده باشد. در قالب YYYY-MM-DD خواهد بود.
endDate string تاریخ پایان فیلتر کردن داده ها فقط dateRangeRequired روی true تنظیم شده است. در قالب YYYY-MM-DD خواهد بود.

اسکریپت پارام

نام تایپ کنید شرح
sampleExtraction boolean اگر true ، درخواست getData() برای تشخیص خودکار نوع معنایی است.
lastRefresh string مهر زمانی که جدیدترین درخواست برای به‌روزرسانی داده‌ها را مشخص می‌کند.

ابعاد فیلترها

نام نوع شرح
fieldName string نام فیلدی که باید فیلتر شود
values string[] آرایه ای از مقادیر برای استفاده برای اپراتور.
type "INCLUDE" | "EXCLUDE" اینکه آیا داده‌های مطابق با این فیلتر باید در پاسخ getData() گنجانده شود یا حذف شود.
operator FilterOperator اپراتور برای درخواست
درخواست مثال
{
  "configParams": {
    "multiSelectExample": "foo,bar",
    "singleSelectExample": "Lipsum",
    "singleTextExample": "Lorem Ipsum",
    "multiTextExample": "Dolor Sit Amet",
    "includeCheckExample": "true"
  },
  "dateRange": {
    "endDate": "2017-07-16",
    "startDate": "2017-06-19"
  },
  "fields": [
    {"name": "count"},
    {"name": "family"}
  ]
}

واکنش

پیش فرض

@return {object} یک شی جاوا اسکریپت که شامل طرح و داده برای درخواست داده شده است.

تابع داده های جدولی را برمی گرداند که درخواست داده شده را برآورده می کند. طرحی برای داده های جدولی در پاسخ گنجانده شده است. انتظار می رود پاسخ دارای ساختار زیر باشد:

  {
    "schema": [
      {
        object(Field)
      }
    ],
    "rows": [
      {
        "values": [
          string
        ]
      }
    ]
  }
نام تایپ کنید شرح
schema رشته [] طرح واره برای فیلد(های) درخواستی. field.name و field.dataType لازم است. ترتیب شی field باید با ترتیب مقادیر هر سطر مطابقت داشته باشد.
rows[].values[] string | number | boolean مقادیر فیلد(های) درخواستی
ترتیب مقادیر باید با ترتیب Fields تعریف شده در schema مطابقت داشته باشد
filtersApplied boolean اگر همه فیلترها با موفقیت اعمال شدند روی true و در غیر این صورت false را تنظیم کنید.

رشته

نام تایپ کنید شرح
name string نام رشته.
dataType نوع داده نوع رشته.
مثال
{
  "schema": [
    {
      "name": "OpportunityName",
      "dataType": "STRING"
    },
    {
      "name": "IsVerified",
      "dataType": "BOOLEAN"
    },
    {
      "name": "Created",
      "dataType": "STRING"
    },
    {
      "name": "Amount",
      "dataType": "NUMBER"
    }
  ],
  "rows": [
    {
      "values": ["Interesting", true, "2017-05-23", "120453.65"]
    },
    {
      "values": ["SF", false, "2017-03-03", "362705286.92"]
    },
    {
      "values": ["Spring Sale", true, "2017-04-21", "870.12"]
    }
  ],
  "filtersApplied": false
}

BigQuery

@return {object} یک شی جاوا اسکریپت که پیکربندی کوئری BigQuery را نشان می‌دهد.

مثال
var bqTypes = DataStudioApp.createCommunityConnector().BigQueryParameterType;
var configuration = DataStudioApp.createCommunityConnector().newBigQueryConfig()
    .setBillingProjectId('billingProjectId')
    .setQuery('myQueryString')
    .setUseStandardSql(true)
    .setAccessToken('myAccessToken')
    .addQueryParameter('myUrlParameterName', bqTypes.STRING, 'myUrlParameterValue')
    .build();

getAuthType()

روش احراز هویت رابط را برمی‌گرداند.

درخواست

این تابع هیچ آرگومانی را نمی پذیرد.

واکنش

سرویس استودیو Looker

@return {object} یک شی که حاوی AuthType استفاده شده توسط رابط است. اگر AuthType یکی از USER_TOKEN ، USER_PASS ، KEY ، PATH_USER_PASS ، یا PATH_KEY باشد، یک helpUrl اختیاری نیز می‌تواند تنظیم شود.

مثال
function getAuthType() {
  var cc = DataStudioApp.createCommunityConnector();
  return cc.newAuthTypeResponse()
    .setAuthType(cc.AuthType.USER_PASS)
    .setHelpUrl('https://www.example.org/connector-auth-help')
    .build();
}

میراث

@return {object} یک شی که حاوی AuthType استفاده شده توسط رابط است. اگر AuthType یکی از USER_TOKEN ، USER_PASS ، KEY ، PATH_USER_PASS ، یا PATH_KEY باشد، یک helpUrl اختیاری نیز می‌تواند تنظیم شود.

پاسخ دارای ساختار زیر است:

 {
   "type": string(AuthType),
   "helpUrl": string
 }

نام زمینه تایپ کنید شرح
type string( AuthType ) مقدار برای نوع احراز هویت.
helpUrl string یک URL اختیاری برای نشان دادن به کاربر اگر type یکی از USER_TOKEN ، USER_PASS ، KEY ، PATH_USER_PASS ، یا PATH_KEY باشد. این URL باید به صفحه ای اشاره کند که در آن کاربران می توانند جزئیات مربوط به نحوه احراز هویت رابط را بیاموزند.

نمونه پاسخ
{
  "type": "USER_TOKEN",
  "helpUrl": "https://www.example.org/connector-auth-help"
}

توابع Auth مورد نیاز

isAuthValid()

بررسی می کند که آیا اعتبارنامه خدمات شخص ثالث معتبر است یا خیر.

درخواست

این تابع به طور رسمی هیچ آرگومانی را نمی پذیرد.

واکنش

@return {boolean} اگر اعتبار سرویس شخص ثالث معتبر باشد، true را برمی‌گرداند، در غیر این صورت false . در صورت true ، انتظار می رود که تماس با getData و getSchema مجاز باشد. اگر false باشد، احتمالاً به کاربر اطلاع داده می‌شود که اعتبار اعتبار منقضی شده است و از او خواسته می‌شود که دوباره مجوز دهد.

resetAuth()

اعتبار کاربری سرویس شخص ثالث را پاک می کند.

درخواست

این تابع به طور رسمی هیچ آرگومانی را نمی پذیرد.

واکنش

پاسخ خالی است

توابع مورد نیاز OAuth2

get3PAuthorizationUrls()

URL مجوز را برای شروع جریان OAuth 2.0 برای سرویس شخص ثالث برمی گرداند.

درخواست

این تابع به طور رسمی هیچ آرگومانی را نمی پذیرد.

واکنش

@return {string} نشانی اینترنتی مجوز سرویس شخص ثالث را برمی‌گرداند. URL مجوز برای شروع جریان OAuth 2.0 برای اعطای دسترسی به سرویس شخص ثالث به کاربر ارائه می شود.

authCallback()

پاسخ مجوز دریافت شده از سرویس شخص ثالث را به عنوان بخشی از فرآیند مجوز OAuth 2.0 مدیریت می کند.

درخواست

@param {string} request یک شی کدگذاری شده JSON که نشان دهنده داده های درخواست از تکمیل جریان OAuth 2.0 است.

انتظار می رود پارامتر request از تکمیل یک جریان OAuth 2.0 حاوی داده هایی با ساختار زیر باشد (2 نمایش در زیر وجود دارد، یکی برای یک درخواست موفق و دیگری برای یک درخواست ناموفق):

// Success
{
  "parameter":
    {
      "code": string
    }
}

// Error
{
  "parameter":
    {
      "error": string
    }
}
نام زمینه تایپ کنید شرح
parameter object code یا مقادیر error از یک جریان OAuth 2.0 موفق یا ناموفق. از این مقادیر می توان برای رسیدگی بیشتر به تماس استفاده کرد.
code string در یک جریان OAuth 2.0 موفقیت آمیز، این موجود خواهد بود و حاوی مقدار پارامتر پرس و code از درخواست پاسخ به تماس OAuth 2.0 است که از سرویس شخص ثالث دریافت شده است. این یک کد مجوز است که می تواند برای مدیریت بیشتر OAuth 2.0 استفاده شود.
error object در یک تلاش ناموفق جریان OAuth 2.0، این مورد وجود خواهد داشت و حاوی مقدار پارامتر درخواست error از درخواست برگشت تماس OAuth 2.0 است که از سرویس شخص ثالث دریافت شده است. این یک پیام خطایی است که می تواند برای مدیریت بیشتر OAuth 2.0 و ایجاد اعلان ها استفاده شود.

واکنش

@return {object} یک شی HTML را که رندر شده و به کاربر نشان داده می‌شود، برگردانید. لطفاً اسناد کتابخانه Oauth و همچنین اسناد سرویس HTML Apps Script را برای جزئیات بیشتر مشاهده کنید.

توابع مورد نیاز کاربر/گذر و کلید

setCredentials()

اعتبارنامه های ارسال شده از استودیوی Looker را ذخیره می کند.

درخواست

@param {Object} request یک شی جاوا اسکریپت حاوی پارامترهای درخواست داده است.

پارامتر request حاوی اطلاعاتی است که کاربر وارد کرده است. بسته به پاسخ getAuthType() دارای یکی از pathUserPass ، pathKey ، userPass ، userToken یا مجموعه key خواهد بود.

{
  "pathUserPass": {
    "path": : string,
    "username": string,
    "password": string
  },
  "pathKey": {
    "path": : string,
    "key": string
  },
  "userPass": {
    "username": string,
    "password": string
  },
  "userToken": {
    "username": string,
    "token": string
  },
  "key": string
}
نام زمینه تایپ کنید
pathUserPass.path مسیر ارائه شده توسط کاربر
pathUserPass.username نام کاربری ارائه شده توسط کاربر.
pathUserPass.password رمز ارائه شده توسط کاربر.
pathKey.path مسیر ارائه شده توسط کاربر
pathKey.key کلید یا توکن API ارائه شده توسط کاربر.
userPass.username نام کاربری ارائه شده توسط کاربر.
userPass.password رمز ارائه شده توسط کاربر.
userToken.username نام کاربری ارائه شده توسط کاربر.
userToken.token توکن ارائه شده توسط کاربر.
key کلید یا توکن API ارائه شده توسط کاربر.

واکنش

@return {object} یک شی جاوا اسکریپت که حاوی کد خطایی است که نشان می‌دهد آیا اعتبارنامه‌ها با موفقیت تنظیم شده‌اند یا خیر.

{
  "errorCode": string("NONE" | "INVALID_CREDENTIALS")
}
نام زمینه تایپ کنید شرح
errorCode enum(string) کد خطا برای تماس setCredentials
نام کد خطا شرح
"NONE" اعتبارنامه ها با موفقیت تنظیم شدند.
"INVALID_CREDENTIALS" اعتبارنامه ارائه شده نامعتبر بود.
نمونه پاسخ
{
  "errorCode": "NONE"
}

توابع اختیاری

isAdminUser()

بررسی می کند که آیا کاربر ادمین کانکتور است یا خیر. این تابع برای فعال/غیرفعال کردن ویژگی های اشکال زدایی استفاده می شود. برای جزئیات بیشتر به فعال کردن/غیرفعال کردن ویژگی های اشکال زدایی مراجعه کنید.

درخواست

این تابع هیچ آرگومانی را نمی پذیرد.

واکنش

@return {boolean} اگر کاربر ادمین رابط باشد، true برگردانید. اگر تابع حذف شود یا false را برگرداند، کاربر به عنوان مدیر در نظر گرفته نخواهد شد. برای جزئیات بیشتر به فعال کردن/غیرفعال کردن ویژگی های اشکال زدایی مراجعه کنید.

انواع داده ها

رشته

سرویس استودیو Looker

برای همه متدهایی که در نوع فیلد وجود دارد، به فیلد کلاس مراجعه کنید.

ایجاد یک فیلد

var cc = DataStudioApp.createCommunityConnector();
var types = cc.FieldType;
var aggregations = cc.AggregationType;

var myField = cc.newDimension() // Or newMetric
  .setId('my_unique_identifier')
  .setName('My friendly name')
  .setDescription('My short description')
  .setType(types.YEAR_MONTH_DAY)
  // formula fields cannot be hidden.
  .setIsHidden(true)
  .setGroup('My group name');

میراث

فیلد خاصی از رکورد/ردیف را به عنوان بخشی از طرحواره توصیف می کند.

هر فیلد دارای ساختار زیر است:

{
  "name": string,
  "label": string,
  "description": string,
  "dataType": string(DataType),
  "group": string,
  "formula": string,
  "isDefault": boolean,
  "defaultAggregationType": string(DefaultAggregationType),
  "semantics": {
    "conceptType": string(ConceptType),
    "semanticType": string(SemanticType),
    "semanticGroup": string(SemanticGroup),
    "isReaggregatable": boolean
  }
}
نام زمینه تایپ کنید شرح
name string نام رشته.
این به عنوان یک شناسه منحصر به فرد استفاده می شود. فقط کاراکترهای الفبایی و زیرخط مجاز هستند.
label string نام نمایشی فیلد این به عنوان یک نام "دوستانه" در رابط کاربری استفاده می شود.
description string توضیحات اختیاری برای فیلد فقط متن ساده مجاز است.
dataType string( DataType ) نوع داده برای فیلد.
isHidden boolean یک ویژگی اختیاری برای مخفی کردن فیلد روی true تنظیم کنید. فیلدهای پنهان در صفحه فیلدها یا به عنوان یک فیلد قابل انتخاب برای نمودارها نشان داده نمی شوند، اما می توانند در فرمول های فیلد محاسبه شده استفاده شوند. فیلدهای فرمول را نمی توان پنهان کرد.
group string یک ویژگی اختیاری که نشان می دهد یک فیلد متعلق به یک گروه است. اگر fieldA و fieldB هر دو متعلق به groupC باشند، در «انتخابگر متریک» یا «انتخاب کننده ابعاد» رابط کاربری با هم گروه‌بندی می‌شوند. اگر گروه حداقل برای یک فیلد تعریف شده باشد، به فیلدهای بدون گروه گروهی از Default Group داده می شود.
formula string

یک ویژگی اختیاری که نحوه محاسبه یک فیلد را تعیین می کند. اگر فرمول نامعتبر باشد، فیلد حذف می شود. اگر هر دو ویژگی تجمیع ( isReaggregatable و defaultAggregationType ) و formula ارائه شوند، ویژگی های تجمع نادیده گرفته می شوند.

فقط semanticType خاصی با یک فیلد formula کار می کند. به طور کلی، بهتر است اینها متن یا عدد باشند، به استثنای date و geo . اگر خروجی متن یک تاریخ یا فرمول جغرافیایی با نوع معنایی مطابقت داشته باشد، می توان از آن نوع معنایی استفاده کرد. در غیر این صورت نوع معنایی باید string باشد.

اگر این فیلد را به صورت دستی تنظیم کنید، نمی توان آن را در ویرایشگر فیلدها ویرایش کرد. برای جزئیات بیشتر در مورد ایجاد فرمول ها، درباره فیلدهای محاسبه شده را بررسی کنید.

isDefault boolean یک ویژگی اختیاری که نشان می دهد آیا یک فیلد باید به عنوان dimension یا metric پیش فرض انتخاب شود. شما باید فقط یک dimension پیش‌فرض و یک metric پیش‌فرض برای طرحواره تعریف کنید.
defaultAggregationType string( DefaultAggregationType ) یک ویژگی اختیاری که نشان می‌دهد Looker Studio باید به‌طور پیش‌فرض برای این فیلد چه ترکیبی داشته باشد. کاربران می توانند این مقدار را تغییر دهند.
semantics object ویژگی هایی برای ارائه اطلاعات معنایی در مورد زمینه. اگر این ویژگی (و semantics.semanticType ) در هر یک از فیلدهای طرحواره وجود داشته باشد، تشخیص معنایی خودکار غیرفعال می شود. اگر این ویژگی در همه فیلدها وجود نداشته باشد، تشخیص معنایی خودکار فعال خواهد شد.
semantics.conceptType string( ConceptType ) نشان می دهد که آیا میدان یک بعد یا متریک است.
semantics.semanticType string( SemanticType ) نوع معنایی برای حوزه. در صورت ارائه، تشخیص معنایی خودکار غیرفعال است.
semantics.semanticGroup string( SemanticGroup ) گروه معنایی برای حوزه. این ویژگی اختیاری اجازه می دهد تا انواع معنایی گروه بندی شوند. Looker Studio در حال حاضر از این فیلد استفاده نمی کند، اما ممکن است در آینده.
semantics.isReaggregatable boolean true نشان می دهد که Aggregation را می توان در این زمینه اعمال کرد. در Looker Studio Aggregation به طور پیش فرض روی SUM تنظیم شده است و کاربر می تواند Aggregation را تغییر دهد.
false نشان می دهد که تجمع نباید در این زمینه اعمال شود. در Looker Studio Aggregation به طور پیش فرض روی Auto تنظیم شده است و کاربر نمی تواند Aggregation را تغییر دهد.
مقدار پیش فرض true است.
توجه: این ویژگی فقط بر فیلدهای متریک تأثیر می گذارد.

نوع مفهوم

مقادیر برای انواع مفاهیم معنایی می تواند یکی از موارد زیر باشد:

مقدار Enum شرح
DIMENSION یک بعد ابعاد، دسته های داده ای با مقادیری مانند نام، توضیحات یا سایر ویژگی های یک دسته هستند.
METRIC یک متریک متریک ها مقادیر ابعاد را اندازه گیری می کنند و اندازه گیری هایی مانند مجموع، شمارش، نسبت و غیره را نشان می دهند.

نوع داده

مقادیر انواع داده های طرحواره می تواند یکی از موارد زیر باشد:

مقدار Enum شرح
STRING یک رشته دلخواه توسط مشخصات JSON Schema تعریف شده است.
NUMBER یک نوع داده عددی در فرمت ممیز شناور 64 بیتی با دقت دوگانه (IEEE 754).
BOOLEAN یک مقدار بولی، true یا false . توسط مشخصات JSON Schema تعریف شده است.

SemanticType

مقدار Enum شرح مثال
YEAR YYYY "2017"
YEAR_QUARTER YYYYQ "20171"
YEAR_MONTH YYYYMM "201703"
YEAR_WEEK YYYYww "201707"
YEAR_MONTH_DAY YYYYMMDD "20170317"
YEAR_MONTH_DAY_HOUR YYYYMMDDHH "2017031403"
YEAR_MONTH_DAY_SECOND YYYYMMDDHHMMSS "20170314031545"
QUARTER (1, 2, 3, 4) "1"
MONTH MM "03"
WEEK ww "07"
MONTH_DAY MMDD "0317"
DAY_OF_WEEK یک عدد اعشاری 0-6 با 0 نشان دهنده یکشنبه "0"
DAY DD "17"
HOUR HH "02"
MINUTE mm "12"
DURATION مدت زمان (بر حسب ثانیه) 6340918234
COUNTRY کشور "United States"
COUNTRY_CODE کد کشور "US"
CONTINENT قاره "Americas"
CONTINENT_CODE کد قاره "019"
SUB_CONTINENT زیر قاره "North America"
SUB_CONTINENT_CODE کد زیر قاره "003"
REGION منطقه "California"
REGION_CODE کد منطقه "CA"
CITY شهر "Mountain View"
CITY_CODE کد شهر "1014044"
METRO_CODE کد مترو "200807"
LATITUDE_LONGITUDE طول و عرض جغرافیایی "51.5074, -0.1278"
NUMBER عدد اعشاری 14
PERCENT درصد اعشاری (می تواند بیش از 1.0 باشد) 1.0
TEXT متن فرم آزاد "Here is some text"
BOOLEAN true یا false true
URL URL به عنوان متن "https://www.google.com"

فرمول انواع معنایی

مقدار Enum شرح فرمول
HYPERLINK پیوندی با برچسب متنی "HYPERLINK($url, $description)"
IMAGE URL یک تصویر "IMAGE($image_url, $alt_text)"
IMAGELINK پیوندی با برچسب تصویر "HYPERLINK($url, $image_field)"

انواع معنایی ارز

تمام مقادیر ارز اعداد جاوا اسکریپت هستند. مقادیر منفی مجاز است.

مقدار Enum شرح
CURRENCY_AED درهم امارات متحده عربی (dh)
CURRENCY_ALL لک آلبانیایی (لک)
CURRENCY_ARS پزو آرژانتین ($)
CURRENCY_AUD دلار استرالیا (دلار)
CURRENCY_BDT تاکا بنگلادشی (৳)
CURRENCY_BGN لو بلغاری (لو)
CURRENCY_BOB بولیویایی بولیویایی (Bs)
CURRENCY_BRL رئال برزیل (R$)
CURRENCY_CAD دلار کانادا ($)
CURRENCY_CDF فرانک کنگو (FrCD)
CURRENCY_CHF فرانک سوئیس (CHF)
CURRENCY_CLP پزوی شیلی ($)
CURRENCY_CNY یوان چین (¥)
CURRENCY_COP پزوی کلمبیا ($)
CURRENCY_CRC کولون کاستاریکا (₡)
CURRENCY_CZK کرون چک (Kč)
CURRENCY_DKK کرون دانمارک (کرون)
CURRENCY_DOP پزو دومینیکن (RD$)
CURRENCY_EGP پوند مصر (£)
CURRENCY_ETB بیر اتیوپیایی (Birr)
CURRENCY_EUR یورو (یورو)
CURRENCY_GBP پوند استرلینگ بریتانیا (£)
CURRENCY_HKD دلار هنگ کنگ ($)
CURRENCY_HRK کونا کرواسی (kn)
CURRENCY_HUF فورینت مجارستان (فوت)
CURRENCY_IDR روپیه اندونزی (Rp)
CURRENCY_ILS شکل جدید اسرائیل (₪)
CURRENCY_INR روپیه هند (₹)
CURRENCY_IRR ریال ایران (ریال)
CURRENCY_ISK کرون ایسلند (kr)
CURRENCY_JMD دلار جامائیکا ($)
CURRENCY_JPY ین ژاپن (¥)
CURRENCY_KRW وون کره جنوبی (₩)
CURRENCY_LKR روپیه سریلانکا (روپیه)
CURRENCY_LTL Litas لیتوانیایی (Lt)
CURRENCY_MNT توگریک مغولی (₮)
CURRENCY_MVR روفیای مالدیو (Rf)
CURRENCY_MXN پزو مکزیک ($)
CURRENCY_MYR رینگیت مالزی (RM)
CURRENCY_NOK کرون نروژ (کرون)
CURRENCY_NZD دلار نیوزلند (دلار)
CURRENCY_PAB بالبوآ پانامایی (B/.)
CURRENCY_PEN نووو سول پرو (S/.)
CURRENCY_PHP پزو فیلیپین (₱)
CURRENCY_PKR روپیه پاکستان (روپیه)
CURRENCY_PLN زلوتی لهستانی (ZL)
CURRENCY_RON لئو رومانیایی (RON)
CURRENCY_RSD دینار صربستان (دین)
CURRENCY_RUB روبل روسیه (₽)
CURRENCY_SAR ریال عربستان (ریال)
CURRENCY_SEK کرون سوئد (kr)
CURRENCY_SGD دلار سنگاپور ($)
CURRENCY_THB بات تایلند (฿)
CURRENCY_TRY لیر ترکیه (₺)
CURRENCY_TWD دلار جدید تایوان (NT$)
CURRENCY_TZS شیلینگ تانزانیا (TSh)
CURRENCY_UAH Hryvnia اوکراین (грн.)
CURRENCY_USD دلار آمریکا (دلار)
CURRENCY_UYU دلار آمریکا (دلار)
CURRENCY_VEF پزوی اروگوئه ($)
CURRENCY_VND ونزوئلا بولیوار فوئرت (Bs)
CURRENCY_YER دونگ ویتنامی (₫)
CURRENCY_ZAR ریال یمن (ریال)

SemanticGroup

این فقط لیستی از مقادیر پیشنهادی است، شما مختارید مقادیری خارج از این لیست را انتخاب کنید. با این حال، تنظیم این فیلد، گروهی را که Looker Studio در گزینه Type برای ویرایشگر فیلدها استفاده می کند، لغو نمی کند.

ارزش پیشنهادی شرح
NUMERIC گروه عددی
DATETIME گروه DateTime
GEO گروه جغرافیایی
CURRENCY گروه ارز

DefaultAggregationType

مقدار Enum شرح
AVG میانگین عددی (میانگین) ورودی ها.
COUNT تعداد ورودی ها.
COUNT_DISTINCT تعداد ورودی های مجزا.
MAX حداکثر ورودی ها
MIN حداقل ورودی ها
SUM مجموع ورودی ها.
NONE بدون تجمع
AUTO باید برای فیلدهای محاسبه شده که شامل یک تجمیع هستند تنظیم شود

AuthType

مقادیر برای نوع روش احراز هویت می تواند یکی از موارد زیر باشد:

مقدار Enum شرح
NONE نشان می دهد که برای کانکتور نیازی به احراز هویت نیست.
OAUTH2 نشان می دهد که کانکتور از OAuth 2.0 استفاده می کند.
KEY نشان می دهد که کانکتور از کلید API استفاده می کند.
USER_PASS نشان می دهد که رابط از نام کاربری/رمز عبور استفاده می کند.
USER_TOKEN نشان می دهد که رابط از نام کاربری/توکن استفاده می کند.
PATH_USER_PASS نشان می دهد که رابط از مسیر / نام کاربری / رمز عبور استفاده می کند.
PATH_KEY نشان می دهد که کانکتور از مسیر/کلید استفاده می کند.

ConfigType

مقادیر انواع عناصر فرم پیکربندی می تواند یکی از موارد زیر باشد:

مقدار Enum شرح
TEXTINPUT عنصر ورودی یک کادر متنی تک خطی خواهد بود.
TEXTAREA عنصر ورودی یک جعبه textarea چند خطی خواهد بود.
SELECT_SINGLE عنصر ورودی یک کشویی برای گزینه های تک انتخابی خواهد بود.
SELECT_MULTIPLE عنصر ورودی یک کشویی برای گزینه های چند انتخابی خواهد بود.
CHECKBOX عنصر ورودی یک چک باکس منفرد خواهد بود که می تواند برای گرفتن مقادیر بولی استفاده شود.
INFO این یک جعبه متن ساده ثابت است که می تواند برای ارائه دستورالعمل ها یا اطلاعات به کاربر استفاده شود. هر پیوندی قابل کلیک خواهد بود.

اپراتور فیلتر

اپراتور
برابر است
حاوی
REGEXP_PARTIAL_MATCH
REGEXP_EXACT_MATCH
IN_LIST
IS_NULL
بین
NUMERIC_GREATER_THAN
NUMERIC_GREATER_THAN_OR_EQUAL
NUMERIC_LESS_THAN
NUMERIC_LESS_THAN_OR_EQUAL

EQUALS

مقدار مقایسه دقیقاً با مقدار ابعاد مطابقت دارد.

بند مثال:

{
    "operator": "EQUALS",
    "type": "INCLUDE",
    "values": ["USA"],
    "fieldName": "Country"
}

داده ها قبل از اعمال فیلتر:

کشور شهر
ایالات متحده آمریکا سیاتل
CA مونترال
ROK سئول

داده ها پس از اعمال فیلتر:

کشور شهر
ایالات متحده آمریکا سیاتل

CONTAINS

مقدار مقایسه در مقدار ابعاد موجود است.

بند مثال:

{
    "operator": "CONTAINS",
    "type": "INCLUDE",
    "values": ["A"],
    "fieldName": "COUNTRY"
}

داده ها قبل از اعمال فیلتر:

کشور شهر
ایالات متحده آمریکا سیاتل
CA مونترال
ROK سئول

داده ها پس از اعمال فیلتر:

کشور شهر
ایالات متحده آمریکا سیاتل
CA مونترال

REGEXP_PARTIAL_MATCH

مقدار ابعاد حاوی عبارت منظم است.

بند مثال:

{
    "operator": "REGEXP_PARTIAL_MATCH",
    "type": "INCLUDE",
    "values": ["(?i)R[A-Z]*"],
    "fieldName": ""
}

داده ها قبل از اعمال فیلتر:

کشور شهر
ایالات متحده آمریکا سیاتل
CA مونترال
ROK سئول
RU مسکو

داده ها پس از اعمال فیلتر:

کشور شهر
ROK سئول
RU مسکو

REGEXP_EXACT_MATCH

مقدار ابعاد با عبارت منظم مطابقت دارد.

بند مثال:

{
    "operator": "REGEXP_EXACT_MATCH",
    "type": "INCLUDE",
    "values": ["^R[A-Z]*K$"],
    "fieldName": ""
}

داده ها قبل از اعمال فیلتر:

کشور شهر
ایالات متحده آمریکا سیاتل
CA مونترال
ROK سئول
RU مسکو

داده ها پس از اعمال فیلتر:

کشور شهر
ROK سئول

IN_LIST

یک یا چند مورد از مقادیر مقایسه دقیقاً با مقدار ابعاد مطابقت دارد.

بند مثال:

{
    "operator": "IN_LIST",
    "type": "INCLUDE",
    "values": ["USA", "CA"],
    "fieldName": "Country"
}

داده ها قبل از اعمال فیلتر:

کشور شهر
ایالات متحده آمریکا سیاتل
CA مونترال
ROK سئول

داده ها پس از اعمال فیلتر:

کشور شهر
ایالات متحده آمریکا سیاتل
CA مونترال

IS_NULL

اگر مقدار بعد صفر باشد مطابقت دارد.

بند مثال:

{
    "operator": "IS_NULL",
    "type": "INCLUDE",
    "values": [],
    "fieldName": "COUNTRY"
}

داده ها قبل از اعمال فیلتر:

کشور شهر
ایالات متحده آمریکا سیاتل
CA مونترال
ROK سئول
RU مسکو
ترابیتیا

داده ها پس از اعمال فیلتر:

کشور شهر
ترابیتیا

BETWEEN

اگر مقدار بعد بین دو مقدار آزمایشی باشد مطابقت دارد.

بند مثال:

{
    "operator": "BETWEEN",
    "type": "INCLUDE",
    "values": ["20190101", "20190131"],
    "fieldName": "Date"
}

داده ها قبل از اعمال فیلتر:

کشور تاریخ
ایالات متحده آمریکا 20190101
ایالات متحده آمریکا 20190111
ایالات متحده آمریکا 20190201

داده ها پس از اعمال فیلتر:

کشور تاریخ
ایالات متحده آمریکا 20190101
ایالات متحده آمریکا 20190111

NUMERIC_GREATER_THAN

اگر مقدار ابعاد بزرگتر از مقدار تست باشد مطابقت دارد.

بند مثال:

{
    "operator": "NUMERIC_GREATER_THAN",
    "type": "INCLUDE",
    "values": ["20190101"],
    "fieldName": "Date"
}

داده ها قبل از اعمال فیلتر:

کشور تاریخ
ایالات متحده آمریکا 20190101
ایالات متحده آمریکا 20190111
ایالات متحده آمریکا 20190201

داده ها پس از اعمال فیلتر:

کشور تاریخ
ایالات متحده آمریکا 20190111
ایالات متحده آمریکا 20190201

NUMERIC_GREATER_THAN_OR_EQUAL

اگر مقدار ابعاد بزرگتر یا مساوی با مقدار تست باشد، مطابقت دارد.

بند مثال:

{
    "operator": "NUMERIC_GREATER_THAN_OR_EQUAL",
    "type": "INCLUDE",
    "values": ["20190101"],
    "fieldName": "Date"
}

داده ها قبل از اعمال فیلتر:

کشور تاریخ
ایالات متحده آمریکا 20180101
ایالات متحده آمریکا 20190101
ایالات متحده آمریکا 20190111
ایالات متحده آمریکا 20190201

داده ها پس از اعمال فیلتر:

کشور تاریخ
ایالات متحده آمریکا 20190101
ایالات متحده آمریکا 20190111
ایالات متحده آمریکا 20190201

NUMERIC_LESS_THAN

اگر مقدار ابعاد کمتر یا مساوی با مقدار آزمایش باشد، مطابقت دارد.

بند مثال:

{
    "operator": "NUMERIC_LESS_THAN",
    "type": "INCLUDE",
    "values": ["20190101"],
    "fieldName": "Date"
}

داده ها قبل از اعمال فیلتر:

کشور تاریخ
ایالات متحده آمریکا 20180101
ایالات متحده آمریکا 20190101
ایالات متحده آمریکا 20190111
ایالات متحده آمریکا 20190201

داده ها پس از اعمال فیلتر:

کشور تاریخ
ایالات متحده آمریکا 20180101

NUMERIC_LESS_THAN_OR_EQUAL

اگر مقدار ابعاد کمتر یا مساوی با مقدار آزمایش باشد، مطابقت دارد.

بند مثال:

{
    "operator": "NUMERIC_LESS_THAN_OR_EQUAL",
    "type": "INCLUDE",
    "values": ["20190101"],
    "fieldName": "Date"
}

داده ها قبل از اعمال فیلتر:

کشور تاریخ
ایالات متحده آمریکا 20180101
ایالات متحده آمریکا 20190101
ایالات متحده آمریکا 20190111
ایالات متحده آمریکا 20190201

داده ها پس از اعمال فیلتر:

کشور تاریخ
ایالات متحده آمریکا 20180101
ایالات متحده آمریکا 20190101