0

QueryString sql パラメータで行を挿入できました。https://developers.google.com/fusiontables/docs/v1/reference/query/sql?hl=ja

ただし、リファレンス ドキュメントには、行を挿入するための POST の本体として sql パラメータを使用できることが記載されています。私はできません。私はどのように行いますか?https://developers.google.com/fusiontables/docs/v1/using?hl=ja#insertRow

最初の参照では、QueryString sql パラメータが必要であることが説明されています。QueryString で sql を省略したため、エラー 400 が発生しました。QueryString の使用には制限があります (URL の長さ)。POST の body に多くの行を挿入したい。

リクエスト:

POST https://www.googleapis.com/fusiontables/v1/query?access_token={my access token} HTTP/1.1
Content-Type: application/json
sql=INSERT INTO 1JOgUG5QWE5hybrDAd2GX3yfjVCGoM6u7WkSVDok ('_id', '_count', 'start_time', 'end_time',  'counts', 'start_plaece', 'end_place', 'distance',  'average_speed', 'send_flag', 'time_span', 'train_type',  'calories', 'weight', 'status', 'map_url', 'rally_id' ) VALUES ('-1', '0', '2013/01/19 09:00:00.000', '2013/01/19 12:34:56.000', '9876', 'Tokorozawa3', 'iidabashi2', '45678',  '67', '0', '986532', '1', '389', '77.70', '0', 'http://www.google.com/',  '3');

応答:

body {
  "error": {
   "errors": [
    {
     "domain": "global",
     "reason": "required",
     "message": "Required parameter: sql",
     "locationType": "parameter",
     "location": "sql"
    }
   ],
   "code": 400,
   "message": "Required parameter: sql"
  }
}
4

1 に答える 1

1

ドキュメントに欠陥があり、いくつかの詳細が欠落しています。

リクエスト url でsql=... パラメータを使用できます。通常、ContentType ヘッダーは application/json ですが、API はおそらく他のものも受け入れます。この場合、URL の長さは 2048 文字に制限されています。

POST body でsql=... も使用します。この場合、ContentType を application/x-www-form-urlencodedに設定する必要があります。1 回のリクエストで 500 個の INSERT ステートメントに制限されています。

もう 1 つのオプションは、importRows メソッドを使用することです。ここでは、CSV を POST body として使用します。この方法では、アップロードされるデータが 100MB に制限されます。ContentType は "application/octet-stream" である必要があります。詳細はこちら: importRows リファレンス

于 2013-03-29T13:09:50.413 に答える