2017-05-09 151 views
0

我是新來的谷歌oauthopenid連接,可以說我需要服務帳戶,用戶在我的YouTube頻道中存儲視頻,我創建了服務,如docs.but所示,但我不知道如何獲得訪問令牌可以說,我這樣的代碼如何從服務帳戶獲取訪問令牌

$param = $this->getParameter('kernel.root_dir').'/xxxx.json'; 
    $client = new \Google_Client(); 
    $client->setClientId('xxxxxxxx'); 
    $client->setScopes('https://www.googleapis.com/auth/youtube'); 
    $client->setRedirectUri('http://localhost:8000/youtube/1/token'); 
    putenv('GOOGLE_APPLICATION_CREDENTIALS='.$param.''); 
    $authurl = $client->createAuthUrl(); 
    $youtube = new \Google_Service_YouTube($client); 
    file_get_contents($authurl); 

當我運行file_get_contents($authurl)正在逐漸401 error,我在這裏做什麼錯誤?

回答

0

您可能會對幾個術語感到困惑。 Oauth2提示用戶進行身份驗證,要求用戶可以訪問您的YouTube數據。開發人員將獲得刷新令牌,用於檢索新的訪問令牌並訪問用戶YouTube頻道上的數據。

服務帳號是預先授權的。我可以獲取服務帳戶的電子郵件地址,並授予其訪問我的Google雲端硬盤帳戶上的文件夾的權限,然後可以讀取並寫入該文件夾。

YouTube API不支持服務帳戶。

對於YouTube,您需要先驗證自己的代碼,然後保存刷新令牌,然後將該令牌添加到您的代碼中。然後,當其他用戶希望將視頻上傳到您的帳戶時,您可以使用刷新令牌獲取訪問令牌並上傳文件。

有一個很好的問題,這裏有如何使用刷新標記與PHP客戶端庫How to refresh token with Google API client?

$client->refreshToken($refreshToken); 
$newtoken=$client->getAccessToken(); 
+0

感謝的人,是療法任何生命時間刷新令牌,並且是療法任何理由的YouTube不支持服務帳戶? –

+0

刷新令牌*應該*不會過期,但他們可以,你將不得不留意它,並通知自己,如果它。如果在六個月內未使用,它將會過期。除此之外,你應該是安全的。 – DaImTo

+1

好的,謝謝你:-) –

相關問題