這是我這麼遠,通過結合this和this:如何通過Drive API創建公共谷歌文檔(PHP客戶端)
require_once "google-api-php-client/src/Google_Client.php";
require_once "google-api-php-client/src/contrib/Google_DriveService.php";
require_once "google-api-php-client/src/contrib/Google_Oauth2Service.php";
//First, build a Drive service object authorized with the service accounts
$auth = new Google_AssertionCredentials(
DRIVE_SERVICE_ACCOUNT_EMAIL,
array(DRIVE_SCOPE),
file_get_contents(DRIVE_SERVICE_ACCOUNT_KEY)
);
$client = new Google_Client();
$client->setUseObjects(true);
$client->setAssertionCredentials($auth);
$service = new Google_DriveService($client);
//Then, insert the file
$file = new Google_DriveFile();
$file->setTitle('My document');
$file->setMimeType('text/plain');
$createdFile = $service->files->insert($file, array(
'data' => 'Hello world!',
'mimeType' => 'text/plain',
));
print_r($createdFile);
它的工作原理,這意味着它會創建一個文本/ plain文件並返回一個包含其元數據的數組。但是,我想要的是創建一個Google文檔,而不是文本/純文本。我嘗試了將MIME類型(兩種外觀)改爲「application/vnd.google-apps.document」,但得到了以下結果:
致命錯誤:未收到的異常'Google_ServiceException'帶消息'Error calling POST https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart: (400)Bad Request'in /local/path/to/google-api-php-client/src/io/Google_REST.php:66
此外,我需要將文檔公開訪問。當我通過上述方法上傳文本/純文件,然後嘗試瀏覽它時(來自不同於上傳者的帳戶),我被告知需要許可。我把在$createdFile
陣列定睛一看,發現沒有價值「共享」鍵,所以很天真我想它設置爲1:
$file->setShared(1);
它沒有工作,而且,當我再看看陣列,我注意到'共享'鍵仍然沒有分配給它的值。我在網上查找任何可能幫助我的文檔,但沒有運氣。任何人都可以幫助我?謝謝!!
嗨,我試圖做同樣的,但我不能找到新的Google_Permission的代碼()。我的錯誤總是 - 致命錯誤:類'Google_Permission'未找到...有人可以給我一個鏈接到源。 https://github.com/google/google-api-php-client - 沒有這個課程! – SuperYegorius
是的,與@SuperYegorius相同的問題。我找不到Google使用的Google_Permission。 –
看起來它已更名爲'Google_Service_Drive_Permission',而無需更新文檔或phpdoc –