Получить общую ссылку с помощью API Диска Google
Я работаю над приложением с помощью Google Диска. Я хочу, чтобы пользователь имел возможность обмениваться файлами по ссылке, устанавливая разрешения для anyone
и withLink
, как описано в Документация разработчиков Google..
Однако я не могу понять, какую ссылку вы хотите поделиться. Когда я делюсь файлом в интерфейсе браузера Google Диска, я вижу Link to share
в формате:
https://docs.google.com/presentation/d/[...]/edit?usp=sharing
Ссылка в этом формате не является частью объекта файлового ресурса, и она не возвращается из настройки HTTP-разрешения. Надеюсь, кто-то может объяснить мне, как получить эту ссылку через REST api?
Ответы
Ответ 1
Вы можете использовать свойство alternateLink
в ресурсе File, чтобы получить ссылку, которой можно поделиться для открытия файла в соответствующем редакторе или средстве просмотра Google:
https://developers.google.com/drive/v2/reference/files
Обновление
[С API V3] (https://developers.google.com/drive/api/v3/reference/files предлагается использовать свойство webViewLink
.
Ответ 2
В моем случае, используя PHP Api v3, чтобы ссылка была непустой, вы должны определить, что вы запрашиваете это поле... и если у вас есть права:
так что-то вроде этого:
$file =self::$service->files->get("1ogXyGxcJdMXt7nJddTpVqwd6_G8Hd5sUfq4b4cxvotest",array("fields"=>"webViewLink"));
Ответ 3
Чтобы включить общий доступ к ссылкам, используя Google Drive API:
drive.permissions.create({
fileId: '......',
requestBody: {
role: 'reader',
type: 'anyone',
}
});
Получите значение webLinkView
, используя:
const webViewLink = await drive.files.get({
fileId: file.id,
fields: 'webViewLink'
}).then(response =>
response.data.webViewLink
);