按照本教程中的步驟,我可以通過API將文件上傳到我的Google雲端硬盤,優先級爲無需用戶進行確認同意。通過PHP將文件上傳到Google雲端硬盤,使用API不同意屏幕
How do I authorise an app (web or installed) without user intervention? (canonical ?)
然而,我注意到,刷新令牌每次必須進行更新,爲此,我找了另一種解決方案來發送文件未經同意屏幕被髮送給用戶。
在第一個小時內一切順利,但是,現在不返回TOKEN,因此不再進行上傳。
<?php
function get_access_token($force_refresh=false) {
global $client_id, $client_secret, $refresh_token, $verbose ;
if($verbose) { echo "> retrieving access token<br />" ; }
$token_filename = "/tmp/access_token_" . md5($client_id . $client_secret . $refresh_token) ;
$access_token = "" ;
if(!file_exists($token_filename) || $force_refresh===true) {
\t // no previous access token, let's get one
\t if($verbose) { echo "> getting new one<br />" ; }
\t $ch = curl_init();
\t curl_setopt($ch, CURLOPT_URL, "https://accounts.google.com/o/oauth2/token") ;
\t curl_setopt($ch, CURLOPT_PORT , 443) ;
\t \t curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false) ;
\t curl_setopt($ch, CURLOPT_POST, 1) ; \t
\t curl_setopt($ch, CURLOPT_POSTFIELDS, "client_id={$client_id}&client_secret={$client_secret}&refresh_token={$refresh_token}&grant_type=refresh_token") ;
\t curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) ;
\t curl_setopt($ch, CURLOPT_HEADER, true) ;
\t curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded")) ;
\t \t
\t \t echo "Curl error: " . curl_error($ch) . "<br />";
\t $response = curl_exec($ch) ;
\t $response = parse_response($response) ;
\t // todo: make sure that we got a valid response before retrieving the access token from it
\t $access_token = json_decode($response["body"]) ;
\t $access_token = $access_token->access_token ;
\t file_put_contents($token_filename, $access_token) ;
\t } else {
\t \t // we already have something cached, with some luck it's still valid
\t $access_token = file_get_contents($token_filename) ;
\t if($verbose) { echo "> from cache<br />" ; }
\t }
\t if($access_token=="") {
\t \t echo "ERROR: problems getting an access token<br />" ;
\t \t exit(1) ;
\t }
return $access_token ;
}
?>
是否有可能未經同意屏幕,而不需要總是更新此令牌我與谷歌驅動器的應用程序進行整合?
是的,我完全同意你的看法,但是我的問題是它不允許我運行這個API,我的文件沒有像以前那樣進入我的Google Drive。 Google可以爲我的域名或某事做些什麼?我甚至將所有數據都更改爲另一個帳戶,即使這樣,問題仍然存在。 –
您需要解釋「它不會讓我運行此API」,並且「我的文件沒有像以前那樣進入我的Google Drive」。也許發佈一個單獨的問題,顯示任何錯誤消息,http跟蹤等 – pinoyyid
我不知道如何解釋它,但它執行上傳通常這些文件顯示在谷歌驅動器,現在他們不再出現,因爲發生錯誤當使用此API發送文件時。 我正在使用你的方法來獲取TOKEN並將其填充到代碼ben.akrin.com/?p=2080中的變量中。對於每一個所執行的操作,它返回一條消息,在我的情況,這些是消息: > mime類型檢測:圖像/ JPEG >檢索從緩存 ERROR訪問令牌 >:問題得到的訪問令牌 –