在 getData() 实现中为 facebook insights 连接器推送多个值
pushing multiple values in getData() implementation for facebook insights connector
我正在编写一个用于 google 数据工作室的 facebook 洞察连接器,但是在使用指标 page_fans_city[= 时我找不到正确的方法来处理响应32=] 在请求中。返回的数据格式如下:
{
"data": [
{
"name": "page_fans_city",
"period": "lifetime",
"values": [
{
"value": {
"Ancona, Marche, Italy": 61,
"Arezzo, Tuscany, Italy": 42,
"Bari, Puglia, Italy": 362,
"Bergamo, Lombardia, Italy": 48,
"Bologna, Emilia-Romagna, Italy": 388,
"Brescia, Lombardia, Italy": 103,
"Cagliari, Sardinia, Italy": 145,
"Caserta, Campania, Italy": 64,
"Catania, Sicilia, Italy": 272,
"Ferrara, Emilia-Romagna, Italy": 50,
...
},
"end_time": "2017-11-13T08:00:00+0000"
},
...
}
如您所见,"value" 不是单个项目(数字或字符串),而是一个对象。我的数据架构包括:
{
name: 'city_name',
label: 'City',
dataType: 'STRING',
semantics: {
conceptType: 'DIMENSION'
}
},
{
name: 'city_likes',
label: 'Likes per City',
dataType: 'NUMBER',
semantics: {
conceptType: 'METRIC'
}
}
在我的 getData(request) 函数实现中,我需要推送所有城市名称对 - 在特定时间范围内的每一天都喜欢,所以我写道:
case 'city_name':
var dataObj = response.data[1].values[0].value;
var objKeys = Object.keys(dataObj);
//pushing all the keys
for (var n=0; n<objKeys.length; n++) {
values.push(objKeys[n]);
}
break;
case 'city_likes':
var dataObj = response.data[1].values[0].value;
var objKeys = Object.keys(dataObj);
//pushing all the values
for (var n=0; n<objKeys.length; n++) {
values.push(dataObj[objKeys[n]]);
}
break;
但是如果我使用这些 dimension/metric 构建一个 table,我会在数据工作室仪表板上收到 系统错误 。有谁知道管理这种情况的正确方法?也许模式必须不同?
提前致谢。
更新
这是我目前发送的内容:
{
schema=
[
{
dataType=NUMBER,
name=city_likes,
label=Likes per City,
semantics=
{
conceptType=METRIC
}
},
{
dataType=STRING,
name=city_name,
label=City,
semantics=
{
conceptType=DIMENSION
}
}
],
rows=
[
{
values=[62, 326, 78, 396, 130, 179, 73, 248, 48, 65, 450, 80, 47, 277, 57, 83, 85, 87, 82, 2065, 88, 901, 144, 466, 87, 140, 53, 102, 63, 89, 56, 81, 94, 85, 1992, 88, 71, 52, 98, 631, 50, 212, 164, 55, 49, Ancona, Bari, Bergamo, Bologna, Brescia, Cagliari, Caserta, Catania, Como, Ferrara, Florence, Foggia, Forlì, Genova, La Spezia, Lecce, Livorno, Lucca, Messina, Milan, Modena, Naples, Padua, Palermo, Parma, Perugia, Pesaro, Pescara, Pisa, Prato, Ravenna, Reggio di Calabria, Reggio nell Emilia, Rimini, Rome, Sassari, Taranto, Terni, Trieste, Turin, Udine, Venice, Verona, Vicenza, Vietri sul Mare]
}
]
}
有什么想法吗?
您的回复应该更像这样:
{
schema=
[
{
dataType=NUMBER,
name=city_likes,
label=Likes per City,
semantics=
{
conceptType=METRIC
}
},
{
dataType=STRING,
name=city_name,
label=City,
semantics=
{
conceptType=DIMENSION
}
}
],
rows=
[
{
"values": [62, "Ancona"]
},
{
"values": [326, "Bari"]
},
{
"values": [78, "Bergamo"]
},
{
"values": [396, "Bologna"]
},
...
]
}
我正在编写一个用于 google 数据工作室的 facebook 洞察连接器,但是在使用指标 page_fans_city[= 时我找不到正确的方法来处理响应32=] 在请求中。返回的数据格式如下:
{
"data": [
{
"name": "page_fans_city",
"period": "lifetime",
"values": [
{
"value": {
"Ancona, Marche, Italy": 61,
"Arezzo, Tuscany, Italy": 42,
"Bari, Puglia, Italy": 362,
"Bergamo, Lombardia, Italy": 48,
"Bologna, Emilia-Romagna, Italy": 388,
"Brescia, Lombardia, Italy": 103,
"Cagliari, Sardinia, Italy": 145,
"Caserta, Campania, Italy": 64,
"Catania, Sicilia, Italy": 272,
"Ferrara, Emilia-Romagna, Italy": 50,
...
},
"end_time": "2017-11-13T08:00:00+0000"
},
...
}
如您所见,"value" 不是单个项目(数字或字符串),而是一个对象。我的数据架构包括:
{
name: 'city_name',
label: 'City',
dataType: 'STRING',
semantics: {
conceptType: 'DIMENSION'
}
},
{
name: 'city_likes',
label: 'Likes per City',
dataType: 'NUMBER',
semantics: {
conceptType: 'METRIC'
}
}
在我的 getData(request) 函数实现中,我需要推送所有城市名称对 - 在特定时间范围内的每一天都喜欢,所以我写道:
case 'city_name':
var dataObj = response.data[1].values[0].value;
var objKeys = Object.keys(dataObj);
//pushing all the keys
for (var n=0; n<objKeys.length; n++) {
values.push(objKeys[n]);
}
break;
case 'city_likes':
var dataObj = response.data[1].values[0].value;
var objKeys = Object.keys(dataObj);
//pushing all the values
for (var n=0; n<objKeys.length; n++) {
values.push(dataObj[objKeys[n]]);
}
break;
但是如果我使用这些 dimension/metric 构建一个 table,我会在数据工作室仪表板上收到 系统错误 。有谁知道管理这种情况的正确方法?也许模式必须不同? 提前致谢。
更新
这是我目前发送的内容:
{
schema=
[
{
dataType=NUMBER,
name=city_likes,
label=Likes per City,
semantics=
{
conceptType=METRIC
}
},
{
dataType=STRING,
name=city_name,
label=City,
semantics=
{
conceptType=DIMENSION
}
}
],
rows=
[
{
values=[62, 326, 78, 396, 130, 179, 73, 248, 48, 65, 450, 80, 47, 277, 57, 83, 85, 87, 82, 2065, 88, 901, 144, 466, 87, 140, 53, 102, 63, 89, 56, 81, 94, 85, 1992, 88, 71, 52, 98, 631, 50, 212, 164, 55, 49, Ancona, Bari, Bergamo, Bologna, Brescia, Cagliari, Caserta, Catania, Como, Ferrara, Florence, Foggia, Forlì, Genova, La Spezia, Lecce, Livorno, Lucca, Messina, Milan, Modena, Naples, Padua, Palermo, Parma, Perugia, Pesaro, Pescara, Pisa, Prato, Ravenna, Reggio di Calabria, Reggio nell Emilia, Rimini, Rome, Sassari, Taranto, Terni, Trieste, Turin, Udine, Venice, Verona, Vicenza, Vietri sul Mare]
}
]
}
有什么想法吗?
您的回复应该更像这样:
{
schema=
[
{
dataType=NUMBER,
name=city_likes,
label=Likes per City,
semantics=
{
conceptType=METRIC
}
},
{
dataType=STRING,
name=city_name,
label=City,
semantics=
{
conceptType=DIMENSION
}
}
],
rows=
[
{
"values": [62, "Ancona"]
},
{
"values": [326, "Bari"]
},
{
"values": [78, "Bergamo"]
},
{
"values": [396, "Bologna"]
},
...
]
}