<VirtualHost *:80>
redirect permanent (.*) https://&{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
private static function lastRow($arr = [], $sheet = '*******************', $range = 'Лист1!D:D')
{
self::token();
$token = self::$token['access_token'];
$url = "https://sheets.googleapis.com/v4/spreadsheets/$sheet/values/$range?majorDimension=COLUMNS&fields=values";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
"Authorization: Bearer $token",
'Accept: application/json',
'Content-Type: application/json'
]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
//curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonData);
$res = curl_exec($curl);
curl_close($curl);
$json = json_decode($res, true);
$lastrow = (isset($json['values'])) ? count($json['values'][0]) : 0;
return $lastrow;
}
public static function Write($arr = [], $sheet = '***************', $range = 'Лист1')
{
$lastrow = self::lastRow() + 1;
$range = "Лист1!A$lastrow:H$lastrow";
$article = self::filterForAgentPartner($arr);
self::token();
$token = self::$token['access_token'];
$url = "https://sheets.googleapis.com/v4/spreadsheets/$sheet/values/$range:append?valueInputOption=RAW";
$data = [
"values" => $article
];
$jsonData = json_encode($data);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
"Authorization: Bearer $token",
'Accept: application/json',
'Content-Type: application/json'
]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonData);
$res = curl_exec($curl);
curl_close($curl);
var_dump($res);
}
range = Лист1!A:A
Так как A столб может быть пустым, и попытается записать после последнего заполненного, а надо, чтобы учитывал заполнение до H столба.
А "$" встретил где-то в примерах, почему бы не попробовать, возможно и опечатка.