Googleの最新バージョンのPHPAPI(0.60)を使用すると、関数の最後で「print_r($ createdFile)」を使用すると「webViewLink」フィールドが空/ nullになることを除いて、Google開発者ページのコードサンプルが機能するようです。
私のGoogleAppsドメインのdrive.google.comサイトには、パブリック権限で正常に作成された新しいフォルダが表示されます。
何か案は?
Googleの最新バージョンのPHPAPI(0.60)を使用すると、関数の最後で「print_r($ createdFile)」を使用すると「webViewLink」フィールドが空/ nullになることを除いて、Google開発者ページのコードサンプルが機能するようです。
私のGoogleAppsドメインのdrive.google.comサイトには、パブリック権限で正常に作成された新しいフォルダが表示されます。
何か案は?
「数年」後のサービスアカウントのサンプルを次に示します。G Suiteアカウントを持っており、https://admin.google.com/example.com/AdminHome?chromeless = 1#OGX:ManageOauthClientsでAPIクライアントをAPIスコープhttps://www.googleapis.com/に設定しました。 auth/driveそして次に
include_once __DIR__ . '/../vendor/autoload.php';
$client = new Google_Client();
$client->setAuthConfig('my_auth.json');
$client->addScope('https://www.googleapis.com/auth/drive');
$client->setSubject('admin.example.com');
$service = new Google_Service_Drive($client);
$x = $service->files->listFiles([
'spaces' => 'drive', // this doesn't seem necessary
'q' => 'name = "download"',
'fields' => 'files(id, name, webViewLink, webContentLink)',
]);
fields
引数に注意を払ってください:それは何も取得しませんid
が、name
それを省略した場合。
パブリックフォルダを一覧表示する小さなJavaScriptアプリを作成しました。フォルダがリストに表示されていることを確認できますか?表示されていない場合は、公開されていないため、webViewLinkはありません。
https://googledrive.com/host/0B0YvUuHHn3Mna3Rzb19tLTYyOXc/
ページはGoogleドライブ自体でホストされているため、Googleドライブによって提供され、Googleドライブにアクセスします。質問する人は誰でも、いいえ、宇宙は崩壊しませんでした:-)
回避策として、フォルダIDがある場合は、https://googledrive.com/host/FOLDER_ID_HEREを使用できます。
WebViewLinkファイルのプロパティは、次のようにして取得できます。
$file = $service->files->get($file_id, array('fields' => 'webViewLink'));
$web_link_view = $file->getWebViewLink();
また
$sheetsList = $drive_service->files->listFiles([
'fields' => 'files(id, name, webViewLink, webContentLink)',
]);
$web_link_view = $sheetsList->current()->getWebViewLink();
@chxが述べたように、ファイルをロードする必要があります。この場合、ファイルに含めるフィールドを指定しますwebViewLink
。そうしないと、とだけid
がname
利用可能になります。
ファイルのアクセス許可も構成する必要がある場合は、次のようにすることができます。
$permissions = new \Google_Service_Drive_Permission();
$permissions->setRole('writer');
$permissions->setType('anyone');
$drive_service->permissions->create($file_id, $permissions);
の可能な値setRole()
とsetType()
はここで見つけることができます:https ://developers.google.com/drive/api/v3/reference/permissions/create