php
  • redirect
  • oauth-2.0
  • youtube-api
  • 2012-10-05 64 views 0 likes 
    0

    我嘗試使用OAuth 2.0登錄Google。之後我得到了臨時授權碼,然後用它來獲取access_token,谷歌不會重定向我我設置的URL時後,這裏是我的代碼做專:
    Google無法重定向到我設置的網址,OAuth 2

    <form action="https://accounts.google.com/o/oauth2/token" method="post"> 
    <input type="text" name="code" value='##code##'/> 
    <input type="text" name="client_id" value='##client_id##'/> 
    <input type="text" name="client_secret" value='##client_secret##'/> 
    <input type="text" name="redirect_uri" value='http://boomroom.tv/test.php'/> 
    <input type="text" name="grant_type" value='authorization_code'/> 
    <input type="submit" /></form> 
    

    我得到了後access_token在JSON中,它不會將我重定向到我的網址,但保留在頁面'https://accounts.google.com/o/oauth2/token'中,我不知道爲什麼。難道我做錯了什麼?

    回答

    2

    exchange authorization code for an access token step中沒有涉及重定向。你應該在這裏使用服務器端的POST請求,在這裏你可以獲得訪問令牌刷新令牌作爲直接響應。在你的例子中,用戶的瀏覽器會發送這樣的請求,但不聽其響應。

    請注意,您的客戶端機密可以在您網站的源代碼中公開訪問。

    有多種方法可以使用PHP執行服務器端POST請求,例如, using cURL

    1

    如果你想做這個服務器端,Jan的回答是正確的。

    如果你要處理的事情在瀏覽器客戶端,有一個單獨的OAuth 2 Web應用程序的流量,你可以使用:

    https://developers.google.com/youtube/2.0/developers_guide_protocol_oauth2#OAuth2_Client_Side_Web_Applications_Flow

    的谷歌API客戶端JavaScript庫使得它非常容易實現這一點:

    https://code.google.com/p/google-api-javascript-client/wiki/Authentication

    還有就是你可以用/借用代碼在播放實時樣本:

    http://gdata-samples.googlecode.com/svn/trunk/gdata/youtube_upload_cors.html

    +0

    是的,正確的;)作爲問題被標記爲* PHP *我只是指的服務器端的流動,這是更安全,但其流量明顯好轉適合取決於具體的使用情況。 –

    相關問題