Googleドライブを使用してアプリを作成しています。 Google Developersのドキュメント の説明に従って、anyone
およびwithLink
に権限を設定して、ユーザーがリンクでファイルを共有できるようにしたい。
ただし、どのリンクを共有するかわかりません。 Googleドライブのブラウザインターフェースでファイルを共有すると、Link to share
の形式:
https://docs.google.com/presentation/d/ [...]/edit?usp = sharing
この形式のリンクは、ファイルリソースオブジェクトの一部ではなく、アクセス許可を設定するhttp呼び出しから返されるものでもありません。 REST api?
FileリソースのalternateLink
プロパティを使用して、関連するGoogleエディターまたはビューアでファイルを開くために共有できるリンクを取得できます。
https://developers.google.com/drive/v2/reference/files
[API V3を使用]( https://developers.google.com/drive/api/v3/reference/fileswebViewLink
プロパティを使用することをお勧めします。
私の場合、PHP Api v3を使用して、リンクが空でないようにするには、このフィールドを要求することを定義する必要があります...適切な権限がある場合:
だからこのようなもの:
$file =self::$service->files->get("1ogXyGxcJdMXt7nJddTpVqwd6_G8Hd5sUfq4b4cxvotest",array("fields"=>"webViewLink"));
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
);