Всем привет! Задача заключается в том, что есть некоторый скрипт, принимающий ID документа (например, в ссылке https://docs.google.com/spreadsheets/d/1ahWjjkrkYrVJOMn4dyagp_hr8JECvUjj2s-dyYVzaF2/edit ID будет 1ahWjjkrkYrVJOMn4dyagp_hr8JECvUjj2s-dyYVzaF2), который открыт для редактирования по ссылке, и при запуске этого скрипта некоторые данные должны записаться в этот документ. Сейчас это реализовано с использованием OAuth2 авторизации, которая подразумевает подтверждение доступа при первом запуске, создание файла с данными авторизации и работу с ними в дальнейшем, пока не придёт запрос с другим ID документа. В таком случае будет запрошено новое подтверждение и файл будет перезаписан. Авторизация реализуется таким кодом, взятым из доки:
/**
* Returns an authorized API client.
* @return Google_Client the authorized client object
*/
function getClient()
{
$client = new Google_Client();
$client->setApplicationName(APPLICATION_NAME);
$client->setScopes(SCOPES);
$client->setAuthConfig(CLIENT_SECRET_PATH);
$client->setAccessType('offline');
$credentialsPath = $this->expandHomeDirectory(CREDENTIALS_PATH);
if (file_exists($credentialsPath)) {
$accessToken = json_decode(file_get_contents($credentialsPath), true);
} else {
$authUrl = $client->createAuthUrl();
printf("Open the following link in your browser:\n%s\n", $authUrl);
print 'Enter verification code: ';
$authCode = trim(fgets(STDIN));
$accessToken = $client->fetchAccessTokenWithAuthCode($authCode);
if (!file_exists(dirname($credentialsPath))) {
mkdir(dirname($credentialsPath), 0700, true);
}
file_put_contents($credentialsPath, json_encode($accessToken));
printf("Credentials saved to %s\n", $credentialsPath);
}
$client->setAccessToken($accessToken);
if ($client->isAccessTokenExpired()) {
$client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
file_put_contents($credentialsPath, json_encode($client->getAccessToken()));
}
return $client;
}
/**
* Expands the home directory alias '~' to the full path.
* @param string $path the path to expand.
* @return string the expanded path.
*/
function expandHomeDirectory($path)
{
$homeDirectory = getenv('HOME');
if (empty($homeDirectory)) {
$homeDirectory = getenv('HOMEDRIVE') . getenv('HOMEPATH');
}
return str_replace('~', realpath($homeDirectory), $path);
}
Вопрос: есть ли способ редактировать открытые для редактирования по ссылке документы только по api key, без подтверждения? P.S. гуглил.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть код который ищет число в файле, и удаляет его если оно присутствует, а если нет то ничего не делает:
Есть <input type="submit" name="button" value="РЕГИСТРАЦИЯ">, после нажатия происходят действия на сервере(запись в бд) и после этого должно переходить на другую...