web-dev-qa-db-ja.com

Google Drive APIを介して共有リンクを取得

Googleドライブを使用してアプリを作成しています。 Google Developersのドキュメント の説明に従って、anyoneおよびwithLinkに権限を設定して、ユーザーがリンクでファイルを共有できるようにしたい。

ただし、どのリンクを共有するかわかりません。 Googleドライブのブラウザインターフェースでファイルを共有すると、Link to shareの形式:

https://docs.google.com/presentation/d/ [...]/edit?usp = sharing

この形式のリンクは、ファイルリソースオブジェクトの一部ではなく、アクセス許可を設定するhttp呼び出しから返されるものでもありません。 REST api?

17
Jon Saalbach

FileリソースのalternateLinkプロパティを使用して、関連するGoogleエディターまたはビューアでファイルを開くために共有できるリンクを取得できます。

https://developers.google.com/drive/v2/reference/files

更新

[API V3を使用]( https://developers.google.com/drive/api/v3/reference/fileswebViewLinkプロパティを使用することをお勧めします。

17

私の場合、PHP Api v3を使用して、リンクが空でないようにするには、このフィールドを要求することを定義する必要があります...適切な権限がある場合:

だからこのようなもの:

$file =self::$service->files->get("1ogXyGxcJdMXt7nJddTpVqwd6_G8Hd5sUfq4b4cxvotest",array("fields"=>"webViewLink"));
3
Miguel

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
);

3
rzymek