نظرة عامة على واجهة برمجة التطبيقات
dscc (أحد عناصر منتدى Looker Studio) هي مكتبة تساعد في إنشاء عناصر منتدى Looker Studio. يمكنك العثور على الرمز المصدر على
GitHub.
تعرض dscc ثلاث دوال، هي getWidth() وgetHeight() وsubscribeToData().
getWidth()
| الاسم | المعلمات | نوع القيمة التي يتم عرضها | الوصف |
|---|---|---|---|
| getWidth() | بدون | number
|
تعرض هذه السمة عرض إطار iframe بالبكسل. |
جارٍ استخدام getWidth()
// to get the width of the iframe
var width = dscc.getWidth();
getHeight()
| الاسم | المعلمات | نوع القيمة التي يتم عرضها | الوصف |
|---|---|---|---|
| getHeight() | بدون | int
|
تعرض هذه السمة ارتفاع الإطار المتضمّن (iframe) بالبكسل. |
جارٍ استخدام getHeight()
// to get the height of the iframe
var height = dscc.getHeight();
sendInteraction()
ترسل الدالة sendInteraction() رسالة إلى Looker Studio تتضمّن بيانات خاصة بفلتر.
المَعلمات:
| الاسم | النوع | الوصف |
|---|---|---|
| actionID | string
|
السلسلة التي تتطابق مع actionId في ملف الإعداد |
| تفاعل | enum(InteractionType)
|
تُعلم هذه السمة Looker Studio Studio بالتفاعل |
| البيانات | object(InteractionData)
|
توفّر هذه السمة البيانات المطلوبة للتفاعل |
InteractionType
في الوقت الحالي، FILTER هي InteractionType الصالحة الوحيدة.
| الاسم | النوع | الوصف |
|---|---|---|
| dscc.InteractionType.FILTER | تعداد | توضّح هذه السمة التفاعل FILTER |
جارٍ استخدام sendInteraction
// the actionID can either be hardcoded or parsed from the returned data
var actionId = "interactionConfigId";
// dscc provides enums for the interaction types
var FILTER = dscc.InteractionType.FILTER;
var fieldID = "qt_m9dtntutsb";
var dataValue = "Asia";
// sendInteraction expects data that tells you the concepts and the values of
// those concepts to use in constructing a filter.
var interactionData = {
"concepts": [fieldId],
"values": [[dataValue]]
}
dscc.sendInteraction(actionId, FILTER, interactionData);
interactionData
var interactionData = {
"concepts": array(fieldId),
"values": array(array(dataValue))
}
| الحقل | النوع | الوصف |
|---|---|---|
| للأفكار | Array |
مصفوفة fieldIds |
| values | Array<Array>
|
مصفوفة متداخلة لقيم البيانات يجب أن يكون طول كل مصفوفة فرعية هو طول المصفوفة concepts.
تتوافق كل قيمة في المصفوفة الفرعية مع قيمة سمة. |
العيّنة interactionData:
var interactionData = {
"concepts": ["dim1Id", "dim2Id"],
"values": [
["dim1Val1", "dim2Val1"],
["dim1Val2", "dim2Val2"]
]
}
إنّ استخدام dscc.sendInteraction مع interactionData أعلاه يعادل عبارة SQL التالية:
SELECT data WHERE
(dim1 == dim1Val1 AND dim2 == dim2Val1)
OR
(dim1 == dim1Val2 AND dim2 == dim2Val2);
clearInteraction()
ترسل الدالة clearInteraction() رسالة إلى Looker Studio لمحو فلتر سبق أن تم ضبطه من خلال هذا التمثيل المرئي.
المَعلمات:
| الاسم | النوع | الوصف |
|---|---|---|
| actionID | string
|
السلسلة التي تتوافق مع actionId في ملف الإعداد |
| تفاعل | enum(InteractionType)
|
يُعلم Looker Studio بالتفاعل |
جارٍ استخدام clearInteraction()
// the actionID can either be hardcoded or parsed from the returned data
var actionId = "interactionConfigId";
// dscc provides enums for the interaction types
var FILTER = dscc.InteractionType.FILTER;
dscc.clearInteraction(actionId, FILTER);
subscribeToData(callback, options)
تشترك الدالة subscribeToData() في الرسائل الواردة من Looker Studio.
المَعلمات:
| الاسم | النوع | الوصف |
|---|---|---|
| callback(data) | function
|
دالة تأخذ البيانات التي تعرضها subscribeToData. |
| الخيارات | object |
تحديد تنسيق عرض البيانات المطلوب |
يبدو عنصر الخيارات على النحو التالي:
{
transform: dscc.tableTransform | dscc.objectTransform
}
القيمة المعروضة:
| النوع | الوصف |
|---|---|
function |
إلغاء الاشتراك callback في تلقّي المزيد من الرسائل من Looker Studio |
جارٍ استخدام subscribeToData()
// define and use a callback
var unsubscribe = dscc.subscribeToData(function(data){
// console.log the returned data
console.log(data);
}, {transform: dscc.tableTransform});
// to unsubscribe
unsubscribe();
data
هذا هو العنصر الذي تم تمريره إلى callback المسجَّل باستخدام dscc.subscribeToData. في ما يلي الحقول التي تتم مشاركتها بين dscc.objectFormat وdscc.tableFormat.
{
fields: object(fieldsByConfigId),
style: object(styleById),
interactions: object(interactionsById),
theme: object(themeStyle),
tables: object(tablesById),
dateRanges: object(dateRangesById)
}
| الحقل | النوع | الوصف |
|---|---|---|
| fields | object(fieldsByConfigId)
|
عنصر يحتوي على حقول مفهرسة حسب configId |
| النمط | object(styleById)
|
كائن يحتوي على عناصر نمط مفهرسة حسب configId |
| التفاعلات | object(interactionsById)
|
عنصر يحتوي على عناصر تفاعلية |
| مظهر | themeStyle
|
كائن themeStyle يحتوي على معلومات حول تصميم المظهر للتقرير |
| جداول | object(tablesById)
|
عنصر يحتوي على tableObjects |
| dateRanges | object(dateRangesById)
|
عنصر يحتوي على dateRanges |
fieldsByConfigId
{
configId: array(field)
}
يحتوي الكائن fieldsByConfigId على مصفوفات من كائنات field مفهرسة حسب المعرّف "id" المحدّد في إعدادات العرض. يتضمّن هذا العنصر إدخالاً واحدًا لكل dataField محدّد في ملف الإعداد.
| الحقل | النوع | الوصف |
|---|---|---|
| configId | Array<field> |
مصفوفة من الحقول المرتبطة بـ dataField |
الحقل
{
id: fieldId,
name: string,
description: string,
type: fieldType,
concept: enum(conceptType)
}
يوفّر العنصر field معلومات حول الحقل الذي يختاره المستخدم في لوحة الموقع.
| الحقل | النوع | الوصف |
|---|---|---|
| id | string |
المعرّف الذي أنشأته Looker Studio للحقل |
| الاسم | string |
اسم الحقل الذي يمكن للمستخدمين قراءته |
| الوصف | string |
وصف الحقل |
| النوع | enum(fieldType) |
semanticType الحقل |
| مفهوم | enum(conceptType) |
conceptType الخاص بالحقل |
styleById
{
configId: styleValue
}
يوفّر الكائن styleById معلومات الأنماط المفهرسة حسب المعرّف "id" المحدّد في إعدادات العرض المرئي.
| الحقل | النوع | الوصف |
|---|---|---|
| configId | styleValue
|
كائن يحتوي على قيمة النمط وقيمة النمط التلقائية المحدّدة في الإعداد |
styleValue
{
value: string | object | bool | number,
defaultValue: string | object | bool | number
}
يوفّر الكائن styleValue قيمة النمط الذي يختاره المستخدم والقيمة التلقائية المحدّدة في الإعداد. يعتمد نوع value وdefaultValue على عنصر النمط.
| الحقل | النوع | الوصف |
|---|---|---|
| القيمة | string OR object OR bool OR
number
|
قيمة عنصر النمط التي تم إرجاعها من اختيار المستخدم في لوحة الخصائص |
| defaultValue | string OR object OR bool OR
number
|
القيمة التلقائية لعنصر النمط المحدّد في إعدادات العرض المرئي |
interactionsById
{
}
يوفّر عنصر interactionsById بيانات التفاعل المفهرسة حسب interactionId
إعدادات التصوّر.
| المؤشر | النوع | الوصف |
|---|---|---|
| configId | interaction
|
يشير هذا المصطلح إلى عنصر يحتوي على بيانات مرتبطة بتفاعل. |
interactionField
{
value: object(interactionValue),
supportedActions: array(InteractionType)
}
يحتوي الكائن interactionField على مصفوفة supportedActions المحدّدة في الإعدادات، بالإضافة إلى القيم التي يختارها المستخدم للتفاعل.
| الحقل | النوع | الوصف |
|---|---|---|
| القيمة | string OR object OR
bool OR number
|
قيمة عنصر النمط التي تم إرجاعها من اختيار المستخدم في لوحة الخصائص |
| supportedActions | Array<InteractionType>
|
الإجراءات المتاحة لهذا التفاعل، كما هو محدّد في الإعدادات |
interactionValue
يوفّر العنصر interactionValue القيم التي يختارها المستخدم لنوع التفاعل. إذا كان المفتاح data متوفّرًا، سيعكس العنصر InteractionData الحالة الحالية للفلتر. إذا لم يكن المفتاح data متوفّرًا، يعني ذلك أنّ التمثيل البصري غير مضبوط حاليًا كفلتر.
{
type: enum(InteractionType)
data: object(interactionData) | None
}
| الحقل | النوع | الوصف |
|---|---|---|
| النوع | enum(InteractionType)
|
InteractionType الذي يحدّده المستخدم |
| البيانات | object(InteractionData)
|
البيانات المرتبطة بالحالة الحالية للفلتر لا يتوفّر هذا المفتاح إذا تمت إزالة الفلتر حاليًا. |
مظهر
{
fillColor: {
color: string,
opacity: number
},
fontColor: {
color: string,
opacity: number
},
accentFillColor: {
color: string,
opacity: number
},
accentFontColor: {
color: string,
opacity: number
},
fontFamily: string,
accentFontFamily: string,
increaseColor: {
color: string,
opacity: number
},
decreaseColor: {
color: string,
opacity: number
},
gridColor: {
color: string,
opacity: number
},
seriesColor: [
{
color: string,
opacity: number
}
]
}
يمرّر العنصر themeStyle معلومات موضوع التقرير إلى التمثيل المرئي.
| الحقل | النوع | الوصف |
|---|---|---|
| fillColor | object
|
كائن بالتنسيق {color:
string, opacity: number} |
| fontColor | object
|
كائن بالتنسيق {color:
string, opacity: number} |
| accentFillColor | object
|
كائن بالتنسيق {color:
string, opacity: number} |
| accentFontColor | object
|
كائن بالتنسيق {color:
string, opacity: number} |
| fontFamily | string |
سلسلة تصف مجموعة الخطوط |
| accentFontFamily | string
|
سلسلة تصف مجموعة خطوط التمييز |
| increaseColor | object
|
كائن بالتنسيق {color:
string, opacity: number} |
| decreaseColor | object
|
كائن بالتنسيق {color:
string, opacity: number} |
| gridColor | object
|
كائن بالتنسيق {color:
string, opacity: number} |
| seriesColor | Array<object>
|
مصفوفة من العناصر بالتنسيق{color: string, opacity:
number} |
tablesById
{
"DEFAULT": object(tableObject),
"COMPARISON": object(tableObject) | undefined
}
يوفر tableObject معلومات العنوان والبيانات لكل صف. سيؤدي الخيار "DEFAULT" إلى عرض البيانات دائمًا، ولن يتم ملء الخيار "COMPARISON" إلا إذا أعدّ المستخدم البيانات باستخدام صفوف المقارنة.
تنسيق tableObject هو الفرق الوحيد بين dscc.tableFormat وdscc.objectFormat.
| الحقل | النوع | الوصف |
|---|---|---|
| DEFAULT | object(tableObject) OR
Array<objectRow>
|
tableObject المرتبط بالبيانات التي يضيفها المستخدم إلى تمثيل مرئي |
| "COMPARISON" | object(tableObject) OR
Array<objectRow>
|
tableObject المرتبط
ببيانات مقارنة التواريخ، إذا كان ذلك منطبقًا |
dateRangesById
{
"DEFAULT": object(dateRange),
"COMPARISON": object(dateRange)
}
يوفّر العنصر dateRangesById معلومات حول النطاقات الزمنية التلقائية ونطاقات المقارنة. إذا لم تكن هناك نطاقات تواريخ، سيكون العنصر فارغًا. لن تتم تعبئة DEFAULT وCOMPARISON إلا إذا أعدّ المستخدم نطاقات التواريخ المعنية. تكون البيانات في النطاقات الزمنية مرتبطة بالبيانات التلقائية وبيانات المقارنة المحدّدة في tablesById.
| الحقل | النوع | الوصف |
|---|---|---|
| DEFAULT | object(dateRange)
|
تمثّل هذه السمة dateRange المرتبط بالنطاق الزمني التلقائي، إذا كان ذلك منطبقًا. |
| "COMPARISON" | object(dateRange)
|
تمثّل هذه السمة dateRange المرتبط بنطاق زمني للمقارنة، إذا كان ذلك منطبقًا. |
dateRange
{
start: string,
end: string
}
يوفّر العنصر dateRange معلومات حول تاريخَي البدء والانتهاء للنطاق الزمني التلقائي أو نطاق المقارنة.
| الحقل | النوع | الوصف |
|---|---|---|
| بدء | string |
تاريخ بدء النطاق الزمني بالتنسيق YYYYMMDD. |
| إنهاء | string |
تاريخ انتهاء النطاق الزمني بالتنسيق YYYYMMDD. |
tableFormat مرجع
tableObject
{
headers: array(object),
rows: array(array)
}
| الحقل | النوع | الوصف |
|---|---|---|
| العناوين | Array
|
مصفوفة من عناصر الحقول تحتوي عناصر الحقول هذه أيضًا على السمة configId التي تتوافق مع أرقام التعريف من الإعدادات. |
| صفوف | Array<Array> |
مصفوفة من المصفوفات: كل مصفوفة هي صف من البيانات |
عيّنات بيانات tableFormat
هذه عيّنة data تم عرضها باستخدام dscc.subscribeToData() مع الخيار
dscc.tableFormat.
{
"tables": {
"DEFAULT": {
"headers": [{
"id": "qt_ky8sltutsb",
"name": "dimension",
"type": "TEXT",
"concept": "DIMENSION",
"configId": "configId1"
}, {
"id": "qt_b5bvmtutsb",
"name": "second dim",
"type": "TEXT",
"concept": "DIMENSION"
"configId": "configId1"
}, {
"id": "qt_m9dtntutsb",
"name": "metric",
"type": "NUMBER",
"concept": "METRIC",
"configId": "configId2"
}],
"rows": [
["Week 4", "lm", 55]
]
},
"COMPARISON": {
"headers": [{
"id": "qt_ky8sltutsb",
"name": "dimension",
"type": "TEXT",
"concept": "DIMENSION",
"configId": "configId1"
}, {
"id": "qt_b5bvmtutsb",
"name": "second dim",
"type": "TEXT",
"concept": "DIMENSION"
"configId": "configId1"
}, {
"id": "qt_m9dtntutsb",
"name": "metric",
"type": "NUMBER",
"concept": "METRIC",
"configId": "configId2"
}],
"rows": [
["Week 5", "no", 123]
]
}
},
"fields": {
"configId1": [
{
"id": "qt_ky8sltutsb",
"name": "week",
"type": "TEXT",
"concept": "DIMENSION"
},
{
"id": "qt_b5bvmtutsb",
"name": "textId",
"type": "TEXT",
"concept": "DIMENSION"
}
],
"configId2": [
{
"id": "qt_m9dtntutsb",
"name": "orders",
"type": "NUMBER",
"concept": "METRIC"
}
]
},
"style": {
"nodeColor": {
"value": {
"color": "#000000"
}
}
},
"theme": {},
"dateRanges": {
"DEFAULT": {
"start": "20210501",
"end": "20210531"
},
"COMPARISON": {
"start": "20200501",
"end": "20200531"
}
},
"interactions": {
"onClick": {
"value": {
"type": "FILTER",
"data": {
"concepts": [
"qt_h6oibrb6wb",
"qt_i6oibrb6wb"
],
"values": [
[
"Afternoon",
"Sunday"
],
[
"Afternoon",
"Thursday"
],
[
"Morning",
"Tuesday"
]
]
}
},
"supportedActions": [
"FILTER"
]
}
}
}
مرجع objectFormat
objectRow
{
configId1: array(string | bool | number),
configId2: array(string | bool | number)
}
| الحقل | النوع | الوصف |
|---|---|---|
| configId | صفيف | مصفوفة من القيم المرتبطة برقم تعريف إعداد معيّن |
مثال على بيانات objectFormat
هذه عيّنة data تم عرضها باستخدام dscc.subscribeToData() مع الخيار
dscc.objectFormat.
{
"tables": {
"COMPARISON": [
{
"configId1": ["Week 5", "cd"],
"configId2": [123]
}
],
"DEFAULT": [
{
"configId1": ["Week 1", "ab"],
"configId2": [24]
}
]
},
"fields": {
"configId1": [
{
"id": "qt_h6oibrb6wb",
"name": "time of day",
"type": "TEXT",
"concept": "DIMENSION"
},
{
"id": "qt_i6oibrb6wb",
"name": "day",
"type": "TEXT",
"concept": "DIMENSION"
}
],
"configId2": [
{
"id": "qt_m9dtntutsb",
"name": "metric",
"type": "NUMBER",
"concept": "METRIC"
}
]
},
"style": {
"nodeColor": {
"value": {
"color": "#000000"
}
}
},
"theme": {},
"dateRanges": {
"DEFAULT": {
"start": "20210501",
"end": "20210531"
},
"COMPARISON": {
"start": "20200501",
"end": "20200531"
}
},
"interactions": {
"onClick": {
"value": {
"type": "FILTER",
"data": {
"concepts": [
"qt_h6oibrb6wb",
"qt_i6oibrb6wb"
],
"values": [
[
"Afternoon",
"Sunday"
],
[
"Afternoon",
"Thursday"
],
[
"Morning",
"Tuesday"
]
]
}
},
"supportedActions": [
"FILTER"
]
}
}
}