نظرة عامة على واجهة برمجة التطبيقات
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 تحتوي على بيانات
لفلتر.
المَعلمات:
الاسم | Type | الوصف |
---|---|---|
actionID | string
|
السلسلة التي تتوافق مع actionId في ملف الإعداد |
تفاعل | enum(InteractionType)
|
يخبر Looker Studio عن التفاعل |
البيانات | object(InteractionData)
|
يوفر البيانات المطلوبة للتفاعل |
InteractionType
في الوقت الحالي، سمة InteractionType
الوحيدة الصالحة هي FILTER
.
الاسم | Type | الوصف |
---|---|---|
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))
}
الحقل | Type | الوصف |
---|---|---|
المفاهيم | 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 لمحو فلتر
تم إعداده سابقًا من خلال هذا العرض المرئي.
المَعلمات:
الاسم | Type | الوصف |
---|---|---|
actionID | string
|
السلسلة التي تقابل actionId في ملف config |
تفاعل | 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.
المَعلمات:
الاسم | Type | الوصف |
---|---|---|
Callback(data) | function
|
دالة تأخذ البيانات التي يعرضها
subscribeToData . |
الخيارات | object |
تحديد تنسيق عرض البيانات المطلوب |
يبدو كائن الخيارات كما يلي:
{
transform: dscc.tableTransform | dscc.objectTransform
}
القيمة المعروضة:
Type | الوصف |
---|---|
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)
}
الحقل | Type | الوصف |
---|---|---|
fields | object(fieldsByConfigId)
|
يشير هذا المصطلح إلى كائن يحتوي على حقول تمت فهرستها باستخدام معرّف config. |
style | object(styleById)
|
يشير هذا المصطلح إلى كائن يحتوي على كائنات نمط تمت فهرستها باستخدام configId. |
التفاعلات | object(interactionsById)
|
يشير هذا المصطلح إلى كائن يحتوي على كائنات التفاعل. |
مظهر | themeStyle
|
كائن themeStyle يحتوي على معلومات نمط المظهر في تقرير |
مناضد | object(tablesById)
|
كائن يحتوي على tableObjects |
dateRanges | object(dateRangesById)
|
يشير هذا المصطلح إلى كائن يحتوي على dateRanges. |
fieldsByConfigId
{
configId: array(field)
}
يحتوي الكائن fieldsByConfigId
على مصفوفات من كائنات حقل تمت فهرستها بواسطة "id" المحدّد في
إعدادات العرض المرئي. هناك إدخال واحد في هذا الكائن لكل dataField
تم تحديده في ملف الإعداد.
الحقل | Type | الوصف |
---|---|---|
configId | Array<field> |
مصفوفة من الحقول المرتبطة بحقل البيانات |
الحقل
{
id: fieldId,
name: string,
description: string,
type: fieldType,
concept: enum(conceptType)
}
يوفّر الكائن field
معلومات حول الحقل الذي يختاره المستخدم في لوحة الخصائص.
الحقل | Type | الوصف |
---|---|---|
id | string |
رقم التعريف الذي أنشأته أداة Looker Studio للحقل |
اسم | string |
اسم الحقل الذي يمكن لشخص عادي قراءته |
الوصف | string |
وصف الحقل |
كتابة | enum(fieldType) |
semanticType للحقل |
مفهوم | enum(conceptType) |
conceptType للحقل |
styleById
{
configId: styleValue
}
يوفّر الكائن styleById
معلومات النمط المفهرَسة من خلال "id" المحدّد في إعداد العرض المرئي.
الحقل | Type | الوصف |
---|---|---|
configId | styleValue
|
يشير هذا المصطلح إلى كائن يحتوي على قيمة النمط وقيمة النمط التلقائي المحدَّدة من قِبل config. |
styleValue
{
value: string | object | bool | number,
defaultValue: string | object | bool | number
}
يوفّر الكائن styleValue
قيمة النمط التي اختارها المستخدم والقيمة التلقائية المحدّدة في ملف الإعداد. يعتمد نوع value
وdefaultValue
على عنصر النمط.
الحقل | Type | الوصف |
---|---|---|
القيمة | string OR object OR bool OR
number
|
قيمة عنصر النمط الناتجة من اختيار المستخدم في لوحة الخصائص |
defaultValue | string OR object OR bool OR
number
|
القيمة الافتراضية لعنصر النمط المحدّد في تهيئة التصور |
interactionsById
{
}
يوفر الكائن interactionsById
بيانات التفاعل المفهرَسة من خلال
interactionId
إعدادات العروض المرئية.
الفهرس | Type | الوصف |
---|---|---|
configId | interaction
|
يشير هذا المصطلح إلى كائن يحتوي على بيانات مرتبطة بتفاعل معيَّن. |
interactionField
{
value: object(interactionValue),
supportedActions: array(InteractionType)
}
يحتوي الكائن interactionField
على مجموعة من SupportActions المحددة في الإعداد، بالإضافة إلى القيم التي اختارها المستخدم للتفاعل.
الحقل | Type | الوصف |
---|---|---|
القيمة | string OR object OR
bool OR number
|
قيمة عنصر النمط الناتجة من اختيار المستخدم في لوحة الخصائص |
supportedActions | Array<InteractionType>
|
إنّ الإجراءات التي يتيحها هذا التفاعل، كما هو موضّح في ملف الإعداد |
interactionValue
يوفّر الكائن interactionValue
قيمًا من اختيار المستخدم لنوع التفاعل. في حال توفّر المفتاح data
، يعكس الكائن InteractionData
الحالة الحالية للفلتر. في حال عدم توفّر مفتاح data
،
لم يتم حاليًا إعداد العرض المرئي كفلتر.
{
type: enum(InteractionType)
data: object(interactionData) | None
}
الحقل | Type | الوصف |
---|---|---|
كتابة | 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
معلومات مظهر التقرير إلى التمثيل البصري.
الحقل | Type | الوصف |
---|---|---|
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" إلا إذا
قام المستخدم بتكوين البيانات بصفوف المقارنة.
الفرق الوحيد بين dscc.tableFormat
وdscc.objectFormat
هو تنسيق tableObject.
الحقل | Type | الوصف |
---|---|---|
"DEFAULT" | object(tableObject) OR
Array<objectRow>
|
سمة tableObject المرتبطة بالبيانات
التي يضيفها المستخدم إلى أحد التصورات |
"مقارنة" | object(tableObject) OR
Array<objectRow>
|
تمثّل هذه السمة tableObject المرتبطة ببيانات مقارنة التواريخ، إذا كانت سارية. |
dateRangesById
{
"DEFAULT": object(dateRange),
"COMPARISON": object(dateRange)
}
يقدّم العنصر dateRangesById
معلومات عن النطاقات الزمنية التلقائية والمقارنة. وفي حال عدم وجود نطاقات زمنية، سيكون العنصر فارغًا. لن تتم تعبئة DEFAULT
وCOMPARISON
إلا إذا ضبط المستخدم النطاقات الزمنية المعنيّة. وتكون البيانات في النطاقات الزمنية مرتبطة بالبيانات التلقائية وبيانات المقارنة كما هو محدّد في tablesById.
الحقل | Type | الوصف |
---|---|---|
"DEFAULT" | object(dateRange)
|
السمة dateRange المرتبطة
بالنطاق الزمني التلقائي، إذا كان ذلك منطبقًا. |
"مقارنة" | object(dateRange)
|
السمة dateRange المرتبطة
بالنطاق الزمني للمقارنة، إذا كان ذلك منطبقًا. |
dateRange
{
start: string,
end: string
}
يقدّم العنصر dateRange
معلومات عن تاريخَي البدء والانتهاء لنطاق زمني تلقائي أو للمقارنة.
الحقل | Type | الوصف |
---|---|---|
بدء | string |
تاريخ بدء النطاق الزمني بالتنسيق YYYYMMDD. |
إنهاء | string |
تاريخ انتهاء النطاق الزمني بالتنسيق YYYYMMDD. |
مرجع واحد (tableFormat
)
tableObject
{
headers: array(object),
rows: array(array)
}
الحقل | Type | الوصف |
---|---|---|
headers | 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)
}
الحقل | Type | الوصف |
---|---|---|
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"
]
}
}
}