Everything seems to me working except for the last line of this function. But it seems that the json (rows) is the problem...
Any help is appreciated!
Error:
Google_Service_Exception
Error calling POST https://www.googleapis.com/bigquery/v2/projects/mtg/datasets/log/tables/v1/insertAll: (400) No records present in table data append request.
Table Schema:
raw_url         STRING      NULLABLE
endpoint        STRING      NULLABLE
parameter       STRING      NULLABLE
client_ip       STRING      NULLABLE
account         INTEGER     NULLABLE
response_code   INTEGER     NULLABLE
response_time   INTEGER     NULLABLE
datetime        TIMESTAMP   NULLABLE
Code:
public function insertLog()
{
    $rows = new Google_Service_Bigquery_TableDataInsertAllRequestRows;
    $rows->setJson('{"raw_url":"test","endpoint":"card.id","parameter":"1","client_ip":"127.0.0.1","account":1,"response_code":200,"response_time":1000,"created_at":"2014-02-14 19:16:21"}');
    $rows->setInsertId("21");
    $request = new Google_Service_Bigquery_TableDataInsertAllRequest;
    $request->setKind('bigquery#tableDataInsertAllRequest');
    $request->setRows($rows);
    $this->service->tabledata->insertAll($this->project_id, 'log', 'v1', $request);
}
                The class Google_Service_Bigquery_TableDataInsertAllRequestRows should be named _Row not _Rows because you have to make an array of _Rows objects to pass the request. Here is The code that finally worked.
Also, the json must be an object, not a json string. $data = the json_decode of the json string that was in the original question.
public function insertLog($data)
{
    $rows = array();
    $row = new Google_Service_Bigquery_TableDataInsertAllRequestRows;
    $row->setJson($data);
    $row->setInsertId( strtotime('now') );
    $rows[0] = $row;
    $request = new Google_Service_Bigquery_TableDataInsertAllRequest;
    $request->setKind('bigquery#tableDataInsertAllRequest');
    $request->setRows($rows);
    $this->service->tabledata->insertAll($this->project_id, 'log', 'v1', $request);
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With