2017-11-16 23 views
0

Google 데이터 스튜디오에서 사용할 페이스 북 통찰력 커넥터를 쓰고 있지만 요청시 메트릭 page_fans_city을 사용할 때 응답을 처리 할 수있는 올바른 방법을 찾을 수 없습니다. . 반환 된 데이터 형식은 다음과 같습니다.facebook 통찰력 커넥터에 대한 getData() 구현에서 여러 값 푸시

{ 
    "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의 (요청) 나는 모든 쌍의 도시 이름을 밀어 필요 기능 구현 내에서

-을 구체적으로 시간 범위의 모든 일에 대해 좋아하는, 그래서 내가 쓴 :

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; 

하지만 이러한 측정 기준을 사용하여 예를 들어 표를 작성하는 경우 데이터 스튜디오 대시 보드에서 시스템 오류가 표시됩니다. 누구든지이 시나리오를 관리하는 올바른 방법을 알고 있습니까? 어쩌면 스키마가 달라야할까요? 미리 감사드립니다.

갱신

이 내가 현재 전송하고있는 무슨이다 :

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

어떤 아이디어?

+0

logger.log 또는 CONSOLE.LOG (권장)를 사용하여, 어떤 당신의 GetData의() 응답이 생겼는데? [참조 문서 예제] (https://developers.google.com/datastudio/connector/reference#getdata)의 구조를 따르고 있습니까? –

+0

@MinhazKazi 예 내 구현은 기본적으로 [github] (https://github.com/halsandr/Facebook_Connector/blob/master/Code.gs)의 다음과 같습니다. 내가 뭘 잘못하고 있는지 알 수 없습니다. 스키마 필드를 반복하는 시간에 둘 이상의 값을 푸시 할 수 없습니다. – skanna

+0

getData() 응답의 모양을 정확하게 붙여 넣을 수 있습니까? 완전한 응답을 포함하십시오. 감사. –

답변

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

제안 사항에 대해 고맙게 생각하며 해결 된 문제 :) – skanna

+0

비슷한 문제가있는 다른 개발자가 도움을 얻을 수 있도록 질문에 답변으로 표시해 주시겠습니까? 감사! –