Language
한국어

[Gdata] API v4 사용 for PHP 추가 팁

2018.05.20 00:49

lispro06 조회 수:179

변수를 대충 사용하긴 했지만, 정리하는데는 문제 없다(?)

시트 업데이트 / 마지막에 새로운 행으로 삽입 / 동적 영역 할당 후 대체를 수행하는 코드이다.
마지막에 새로운 행으로 삽입하는 영역은 시트명만 있으면 배열 크기에 따라 자동으로 입려되므로, 컬럼 크기에 따라 A노테이션으로 영역을 지정할 필요가 없다.

// 요청을 받아 저장
$data = json_decode(file_get_contents('php://input'), true);

// 받은 요청에서 content 항목 설정
$content = $data["content"];
$user_key = $data["user_key"];//사용자 키를 확인 - 아래는 사용자 키를 확인해 그 사용자의 count(입력수)를 늘리는 예제이다.

 $spreadsheetId = '시트ID';
 $range = '_시트명_!A1:D3';
 $r1 = '_시트명_!A2:C2';
 $status = '시트명';
 $dt = date("Y. m. d h:i:s",time());
 $key="대문자예시";
 $values = [[$dt,$user_key,strtolower($key)]];
 $options = array('valueInputOption' => 'RAW');
 $body = new Google_Service_Sheets_ValueRange(['values' => $values]);
 $res1 = $service->spreadsheets_values->update($spreadsheetId, $r1, $body, $options);//second row replace

 $valueRange = new Google_Service_Sheets_ValueRange();
 $valueRange->setValues([[$dt, $content, $user_key]]);
 $conf = ["valueInputOption" => "USER_ENTERED"];
 $service->spreadsheets_values->append($spreadsheetId, $r1, $valueRange, $conf);//new row adding

동적 시트 영역 지정
 $response = $service->spreadsheets_values->get($spreadsheetId, $range);
 $values = $response->getValues();
 $dr = '_status_!C' . $values[2][3] . ':D' . $values[2][3];//dynamic user key position
 $resd = $service->spreadsheets_values->get($spreadsheetId, $dr);
 $vd = $resd->getValues();
 $newval=[[$vd[0][0]+0,$vd[0][1]+1]];
 $body = new Google_Service_Sheets_ValueRange(['values' => $newval]);
 $res2 = $service->spreadsheets_values->update($spreadsheetId, $dr, $body, $options);//status, count update


uk.jpg