0

我試圖設置在我的代碼使用的是什麼谷歌已經提供包括動態路徑: set_include_path(get_include_path() . PATH_SEPARATOR . '/path/to/google-api-php-client/src');谷歌Analytics(分析)API包括路徑

我還是比較入門到PHP,我會承擔/path/to/需要被改成別的東西。我曾嘗試將其設置爲/home/expiredf/public_html/google-api-php-client/src但這不起作用。

有人可以幫助我通過這個HelloAnalyticsAPI.php教程?

還收到任何鏈接的答案其他問題,我已經完成大部分的看着,並試圖實現自己的解決方案,但他們沒有工作對我來說,他們似乎與PHP記較高的專業知識來解釋。基本和愚蠢的答案表示讚賞。

+0

該教程是日期的出路,試試這個:http://www.daimto.com/google-oauth2-php/ – DaImTo 2014-10-01 06:17:42

回答

0

您的問題的最佳答案是說不要使用該教程。該教程極其過時並使用舊的PHP-client-Lib,這已報告給Google

PHP客戶端庫

的谷歌PHP客戶端庫的最新版本可以在Github上找到。 google-api-php-client每當有任何更改時,這個客戶端庫會定期更新。您需要將整個src/Google目錄複製到您的應用程序的目錄中。除非你真的知道你在做什麼,否則我不建議只採取你需要的文件。

的oauth2

有3個步驟的oauth2這就是爲什麼它被稱爲3條腿的認證。在第一步中,您要求用戶爲您提供訪問權限,第二步是用戶爲您提供訪問權限,第三步和最後一步是您交換用戶訪問數據的訪問權限。

<?php   
require_once 'Google/Client.php';  
require_once 'Google/Service/Analytics.php';  
session_start();  
$client = new Google_Client(); 
    $client->setApplicationName("Client_Library_Examples"); 
    $client->setDeveloperKey("{devkey}"); 
    $client->setClientId('{clientid}.apps.googleusercontent.com'); 
    $client->setClientSecret('{clientsecret}'); 
    $client->setRedirectUri('http://www.daimto.com/Tutorials/PHP/Oauth2.php'); 
    $client->setScopes(array('https://www.googleapis.com/auth/analytics.readonly')); 

    //For loging out. 
    if ($_GET['logout'] == "1") { 
    unset($_SESSION['token']); 
     } 

    // Step 2: The user accepted your access now you need to exchange it. 
    if (isset($_GET['code'])) { 

     $client->authenticate($_GET['code']); 
     $_SESSION['token'] = $client->getAccessToken(); 
     $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; 
     header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL)); 
    } 

    // Step 1: The user has not authenticated we give them a link to login  
    if (!$client->getAccessToken() && !isset($_SESSION['token'])) { 
     $authUrl = $client->createAuthUrl(); 
     print "<a class='login' href='$authUrl'>Connect Me!</a>"; 
     }   

    // Step 3: We have access we can now create our service 
    if (isset($_SESSION['token'])) { 
     print "<a class='logout' href='".$_SERVER['PHP_SELF']."?logout=1'>LogOut</a><br>"; 
     $client->setAccessToken($_SESSION['token']); 
     $service = new Google_Service_Analytics($client);  

     // request user accounts 
     $accounts = $service->management_accountSummaries->listManagementAccountSummaries(); 

     foreach ($accounts->getItems() as $item) { 
     echo "Account: ",$item['name'], " " , $item['id'], "<br /> \n";   
     foreach($item->getWebProperties() as $wp) { 
      echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebProperty: ' ,$wp['name'], " " , $wp['id'], "<br /> \n";  

      $views = $wp->getProfiles(); 
      if (!is_null($views)) { 
       foreach($wp->getProfiles() as $view) { 
       // echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;View: ' ,$view['name'], " " , $view['id'], "<br /> \n";  
       } 
      } 
     } 
    } // closes account summaries 

    } 
print "<br><br><br>"; 
print "Access from google: " . $_SESSION['token']; 
?> 

此代碼是直接從我的教程撕開:Google Oauth2 PHP - Google Analytics API的教程保持最新。如果這篇文章比較陳舊,你可能想看看代碼中是否有任何改變。

+1

還沒有實現任何代碼,但事實上,你已經指出我關於教程正確的方向,我已經標記爲正確的:) – TheAngryBr1t 2014-10-06 23:10:08

+0

現在實施和偉大的工作,得到正是我一直在試圖讓,現在只是開始閱讀更多的進入數據。謝謝 :) – TheAngryBr1t 2014-10-13 22:09:51