2013-07-26 85 views
1

我正在php中實現雲存儲API,用於上傳mp3文件並加載這些文件。 我想上傳沒有授權的文件對話框是可能的嗎?有沒有沒有oauth2的樣本?未經授權的Google雲端存儲API可能?

+2

你能成爲一個更具體一點你想做什麼?您是否想爲網站用戶提供一個工具來將MP3文件上傳到您的存儲區,爲用戶提供一種工具,讓用戶可以將MP3文件上傳到他們自己的存儲區,或者爲您的程序編寫一個系統,以便在沒有用戶參與的情況下直接上傳MP3 ? –

+0

是一種上傳和想要使用服務認證的工具,但我無法使用。 – techenthusiast

+0

如果不顯示授權對話框至少一次,則無法以用戶名上傳文件。您可以使用服務帳戶通過自己的帳戶進行此操作。或者,您可以請求用戶授予脫機訪問權限,以便您的應用在用戶不在場時可以使用用戶的文件。 –

回答

2

雲存儲的一切都需要授權密鑰。你可以設置一個服務賬號獲取一個承載密鑰,而不需要用戶登錄。我修改了一些來自google-api-php-client的代碼。提供承載密鑰。使用以下內容。

功能getMediaKey(){

/************************************************ 
    Make an API request authenticated with a service 
    account. 
************************************************/ 
set_include_path("../google-api-php-client/src/" . PATH_SEPARATOR . get_include_path()); 
require_once 'Google/Client.php'; 

$client_id = '<your clientid>'; 
$service_account_name = '<serviceaccountemail'; 
$key_file_location = '< location of you privatekey.p12>'; 

//echo pageHeader("Service Account Access"); 
if ($client_id == '<YOUR_CLIENT_ID>' 
    || !strlen($service_account_name) 
    || !strlen($key_file_location)) { 
    echo missingServiceAccountDetailsWarning(); 
} 

$client = new Google_Client(); 

$key = file_get_contents($key_file_location); 
$cred = new Google_Auth_AssertionCredentials(
    $service_account_name, 
    array('https://www.googleapis.com/auth/devstorage.full_control'), 
    $key 
); 
$client->setAssertionCredentials($cred); 
if($client->getAuth()->isAccessTokenExpired()) { 
    $client->getAuth()->refreshTokenWithAssertion($cred); 
} 
$bearerKey = $client->getAccessToken(); 

return $bearerKey; 

}

然後你可以使用承載關鍵發表您的媒體文件。
結賬https://developers.google.com/storage/docs/json_api/ 嘗試它例子

+0

我會測試這個 – Cristiana214