2014-10-27 57 views
1

我需要構建一個連接到Google日曆並獲取指定事件集的小型Web應用程序。我已閱讀documentation,並且我知道我需要將用戶身份驗證到我在Google Developer控制檯上創建的應用。創建Google登錄頁面以訪問服務

我想實現一個彈出窗口的身份驗證(我正在使用fancybox爲此)。這是<div>在登錄數據雲:<div id="login-popup" style="display:none"></div>

這是JS代碼我使用調用auth.php文件:

$.get("/auth.php", function(result) { 
      $('#login-popup').append(result); 
      $.fancybox({ 
       href: "#login-popup", 
       autoSize: true, 
       width: "60%", 
       fitToView: true 
      }); 
     }); 

最後這是發送的PHP代碼GET請求,谷歌的API:

$ch = curl_init(); 
if($ch) { 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/plain')); 
    curl_setopt($ch, CURLOPT_HTTPGET, true); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($ch, CURLOPT_URL, $query); 
    $result = curl_exec($ch); 

    curl_close($ch); 
} 
else { 
    throw new RuntimeException("Hiba történt a távoli adatok elérése közben!"); 
} 
echo json_encode($result); 

所以這個彈出後,此出現,因爲它應該是:

enter image description here

然而,當我輸入我的憑證後,它將我重定向到Google的登錄網站(https://accounts.google.com/ServiceLoginAuth)。

我的問題:

我需要能夠得到數據從這個彈出窗口回到獲得訪問令牌,我可以在我的日曆API調用以後使用。我需要做什麼來實現這一目標?

回答

5

你被重定向的原因是你本質上是將google的頁面加載到iframe中。輸入時會調用通常在提交登錄頁面時調用的所有內容。所以基本上你只是在你的網站上打開谷歌的窗口。

實現這個的正確方法是使用谷歌的oauth API。 (https://developers.google.com/accounts/docs/OAuth2或更具體地說,https://developers.google.com/accounts/docs/OAuth2Login

您需要註冊一個項目並獲得一個開發人員/ API密鑰。

谷歌文檔是非常全面的,所以你應該能夠很容易地跟隨他們!