首页 文章

在facebook insights连接器的getData()实现中推送多个值

提问于
浏览
0

我正在编写一个在Google数据工作室中使用的facebook insights连接器,但在请求中使用指标 page_fans_city 时,我无法找到处理响应的正确方法 . 返回的数据具有以下格式:

{
  "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"
        },
...
}

正如您所看到的,“值”不是单个项目(数字或字符串),而是一个对象 . 我的数据架构包括:

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

但如果我使用这些维度/指标来构建表格,我会在数据工作室仪表板上获得 system error . 有谁知道管理这种情况的正确方法?可能架构必须不同?提前致谢 .

update

这就是我目前发送的内容:

{
    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]
        }
    ]
}

有任何想法吗?

1 回答

  • 0

    您的回复应该更像这样:

    {
    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"]
      },
    ...
    ]
    }
    

相关问题