Можно ли разрешить любому зарегистрированному пользователю сайта или раздражающему пользователю загружать файл на мой диск Google?

Я прочитал это так:Как загружать в МОЙ аккаунт Google Диска, а не пользователей

и я нашел это возможным, хотя поэтому я решил не использовать служебную учетную запись и вместо этого использовать дисковое пространство моей учетной записи Google.

Однако я обнаружил трудности в понимании точных шагов для достижения этой цели. Я прочитал OAuth2.0, Drive API и пример перекрестной загрузки из Google.

Но я действительно не знаю, как выполнить загрузку на МОЙ диск вместо того, чтобы пользователь вошел в Google+, а затем стал загружать на свой собственный диск.

Интересно, кто-нибудь знает точные знания, которые я должен получить, а также шаги и внедрение, необходимые для достижения этого файла загрузки от любых зарегистрированных пользователей на МОЙ google Drive с Drive API. Я использую PHP в качестве Bakend и AngularJS в качестве внешнего интерфейса. Так что, если это стало бы проще с помощью метода или существующей библиотеки (которую я не могу найти, за исключением документа Drive по этому вопросу), будет идеальным вариантом, но шаги по его созданию также будут замечательными.

Более подробно, в посте, который я показал сверху, фраза 2-го ответа "do a one-off auth to get a refresh token, which you will store. You can then use this any time to generate the access token needed to invoke the actual Drive API. You can generate the refresh token using the Oauth Playground, so no need to write any code." поймите меня на самом деле не ясно, какие именно шаги, и API, которые я на самом деле должен использовать для достижения этой цели.

Благодарю вас

0

Решение

Чтобы отправить файлы на Google Диск, вам нужен токен доступа, чтобы использовать хранилище пользователя на Диске, срок действия которого истекает через несколько секунд после создания.

Чтобы создать токен доступа, вам нужен токен обновления, срок действия которого не истекает. Это ключ к этому.

Вот простой пример загрузки файла с использованием PHP API:

https://github.com/numsu/google-drive-sdk-api-php-insert-file-parent-example

Установите его, следуя инструкциям.

Чтобы отредактировать код так, чтобы файлы всегда отправлялись на один диск из любого места, вам необходимо получить токен обновления целевого диска, в данном случае ваш. Вы получите его, войдя в службу и предоставив привилегии на экране Согласия Google. Это будет сохранено в $_SESSION["credentials"], Сделать var_dump() и сохраните токен обновления где-нибудь в файле или базе данных, где вы можете получить к нему доступ.

Теперь вы можете удалить все, что указывает на то, что пользователь входит в систему с помощью oAuth, это не нужно.

Затем вам нужно получить токен доступа с токеном обновления, который у вас есть. Это вы можете сделать с помощью функции Google API $client->refreshToken($refreshToken);

Далее вам просто нужно сгенерировать новый класс обслуживания диска, используя $client переменная: $service = new Google_Service_Drive($client);

После этого, чтобы загрузить файл:

$file = new Google_Service_Drive_DriveFile();
$file->setTitle($title);
$file->setMimeType($mimeType);

$data = file_get_contents($filename);
$createdFile = $service->files->insert($file, array(
'data' => $data,
'mimeType' => $mimeType,
));

Удачи!

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]