PHPでGoogleDriveのAPIを利用してみます。
前回の続きです
OAUTHのアクセストークンは取得している前提で。
今回は画像ファイルのアップロードを紹介します
公式ドキュメントのファイルアップロードはこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
<?php require_once (dirname(__FILE__) . '/vendor/autoload.php'); session_start(); if( !isset( $_SESSION['accessToken'] ) ) { echo "Get Access Token<br>"; exit; } else { $accessToken = $_SESSION['accessToken']; } $params['approval_prompt'] = 'force'; $client = new Google_Client($params); $client->setApplicationName("xxxxxxxxx"); $client->setAuthConfig('client_secrets.json'); // SCOPE変更 権限が足りなければ、再度認証からやり直す必要あり $client->addScope(Google_Service_Drive::DRIVE_FILE); $client->setAccessToken($accessToken); if( $client->isAccessTokenExpired() ) { $_SESSION['accessToken'] = $client->fetchAccessTokenWithRefreshToken(); } try { $drive = new Google_Service_Drive($client); // 画像ファイルアップロード $fileMetaDataParam['name'] = 'test.jpg'; // アップロード先のフォルダの指定 $fileMetaDataParam['parents'][] = 'xxxxxxxxxxxx'; $fileMetaData = new Google_Service_Drive_DriveFile($fileMetaDataParam); // ファイルを取り込み $imageDataParam['data'] = file_get_contents('test.jpg'); $imageDataParam['mimeType'] = 'image/jpeg'; // マルチパートでアップロード $imageDataParam['uploadType'] = 'multipart'; $imageDataParam['fields'] = 'id,parents,name'; $file = $drive->files->create($fileMetaData, $imageDataParam); echo "ID:{$file->id}<br>"; echo "名前:{$file->name}<br>"; echo "parents id:{$file->parents[0]}<br>"; } catch (Google_Service_Exception $e) { echo htmlspecialchars($e->getMessage()); } catch (\Google_Exception $e) { echo htmlspecialchars($e->getMessage()); } |
アップロードも簡単にできます!