Задать вопрос

Как отправить данные из формы с сайта в Google Drive?

Задача: есть сайт с формой. При заполнении пользователем формы данные должны записываться в файл и этот файл должен отправляться мне в Google Drive.

Для решения этой задачи я взял специальный клиент для google api: https://github.com/google/google-api-php-client
И документация к нему: https://developers.google.com/api-client-library/p...

В документации описано несколько способов авторизации. Я выбрал "OAuth 2.0 for Server to Server Applications", т.к. мне нужно отправлять файл конкретно в мой диск, а не в пользовательский.
Далее сделал все по инструкции, добавил проект в Google Developers Console, сгенерировал CLIENT ID и P12 ключ.

Использовав примеры из документации, написал такой код:
<?php
require_once realpath(dirname(__FILE__) . '/../src/Google/autoload.php');

$client_email = '***';
if (file_exists("key.p12")) {
  $private_key = file_get_contents('key.p12');
}

$scopes = array('https://www.googleapis.com/auth/drive');
$credentials = new Google_Auth_AssertionCredentials(
    $client_email,
    $scopes,
    $private_key
);

$client = new Google_Client();
$client->setAssertionCredentials($credentials);
if ($client->getAuth()->isAccessTokenExpired()) {
  $client->getAuth()->refreshTokenWithAssertion();
}
$service = new Google_Service_Drive($client);

DEFINE("TESTFILE", 'testfile-small.txt');
if (!file_exists(TESTFILE)) {
  $fh = fopen(TESTFILE, 'w');
  fwrite($fh, "TEST TEST TEST");
  fclose($fh);
}

$file = new Google_Service_Drive_DriveFile();
$file->setTitle("Hello World!.txt");
$result2 = $service->files->insert(
    $file,
    array(
      'data' => file_get_contents(TESTFILE),
      'mimeType' => 'application/octet-stream',
      'uploadType' => 'multipart'
    )
);


К сожалению поставленную задачу решить так и не удалось. Причину тоже не могу понять, вроде как авторизацию не проходит.

Прошу помочь разобраться с данной проблемой или предложить альтернативные пути решения поставленной задачи.
  • Вопрос задан
  • 1288 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы