2014-04-30 43 views
0

我試過這段代碼,但它沒有顯示任何結果,我檢查了我的錯誤日誌,它說404沒有找到。 我試着用另一種方法說它缺少範圍。無法列出事件並收到錯誤404

<?php 
session_start(); 
error_reporting(E_ALL); 
require_once "Google/Client.php"; 
require_once "Google/Service/Calendar.php"; 

$client = new Google_Client(); 

/************************************************ 
    ATTENTION: Fill in these values! Make sure 
    the redirect URI is to this page, e.g: 
    http://localhost:8080/user-example.php 
************************************************/ 
$client_id = ''; 
$client_secret = ''; 
$redirect_uri = 'http://localhost/listgoogleuser.php'; 

/************************************************ 
    Make an API request on behalf of a user. In 
    this case we need to have a valid OAuth 2.0 
    token for the user, so we need to send them 
    through a login flow. To do this we need some 
    information from our API console project. 
************************************************/ 
$client = new Google_Client(); 
$client->setClientId($client_id); 
$client->setClientSecret($client_secret); 
$client->setRedirectUri($redirect_uri); 
$client->addScope("https://www.googleapis.com/auth/calendar"); 

$service = new Google_Service_Calendar($client); 

/************************************************ 
    If we're logging out we just need to clear our 
    local access token in this case 
************************************************/ 
if (isset($_REQUEST['logout'])) { 
    unset($_SESSION['access_token']); 
} 

/************************************************ 
    If we have a code back from the OAuth 2.0 flow, 
    we need to exchange that with the authenticate() 
    function. We store the resultant access token 
    bundle in the session, and redirect to ourself. 
************************************************/ 
if (isset($_GET['code'])) { 
    $client->authenticate($_GET['code']); 
    $_SESSION['access_token'] = $client->getAccessToken(); 
    $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; 
    header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL)); 
} 

/************************************************ 
    If we have an access token, we can make 
    requests, else we generate an authentication URL. 
************************************************/ 
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) { 
    $client->setAccessToken($_SESSION['access_token']); 
} else { 
    $authUrl = $client->createAuthUrl(); 
} 


$events = $service->events->listEvents('URL HERE'); 


foreach($events['items'] as $datauser){ 

echo $datauser['summary']; 

} 

?> 

回答

0

我有同樣的問題,雖然我每一個方法我試圖在結束了沒有工作,所以一箭雙鵰,一石,我開始了和你使用上面提供的代碼。我刪除了這些代碼行:

$events = $service->events->listEvents('URL HERE'); 

foreach($events['items'] as $datauser){ 
    echo $datauser['summary']; 
} 

並添加了這個在最後,我能夠得到一個迴應。

<div class="box"> 
<div class="request"> 
<?php if (isset($authUrl)): ?> 
    <a class='login' href='<?php echo $authUrl; ?>'>Connect Me!</a> 
<?php else: ?> 
    <? 
    $calendarList = $service->calendarList->listCalendarList(); 

    while(true) { 
     foreach ($calendarList->getItems() as $calendarListEntry) { 
      echo $calendarListEntry->getSummary()." | ".$calendarListEntry->getId()."<br/>"; 
     } 
     $pageToken = $calendarList->getNextPageToken(); 
     if ($pageToken) { 
      $optParams = array('pageToken' => $pageToken); 
      $calendarList = $service->calendarList->listCalendarList($optParams); 
     } else { 
      break; 
     } 
    } 
    ?> 
    <a class='logout' href='?logout'>Logout</a> 
<?php endif ?> 
</div> 
<?php if (isset($short)): ?> 
    <div class="shortened"> 
     <?php var_dump($short); ?> 
    </div> 
<?php endif ?> 
</div> 

也在頁面的頂部,您撥打$client = new Google_Client();兩次。

相關問題