Php 无法列出事件并收到错误404

Php 无法列出事件并收到错误404,php,google-api-php-client,Php,Google Api Php Client,我尝试了这段代码,但它没有显示任何结果,我检查了我的错误日志,它说404找不到。 我尝试使用另一种方法,它说缺少范围 <?php session_start(); error_reporting(E_ALL); require_once "Google/Client.php"; require_once "Google/Service/Calendar.php"; $client = new Google_Client(); /*****************************

我尝试了这段代码,但它没有显示任何结果,我检查了我的错误日志,它说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'];

}

?>

我也遇到了同样的问题,尽管对我来说,我尝试的每一种方法最终都不起作用,所以我重新开始并使用了您上面提供的代码。我删除了以下代码行:

$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()两次