【发布时间】:2014-03-24 21:47:18
【问题描述】:
我完全按照说明进行操作,复制了代码示例 - 我无法让它响应(在日历上写一个事件)。 请帮助 - 如果对我有任何帮助。经过 12 个小时的工作和明天的最后期限后,我要拔掉头发了。
在 Google Developer Console 上,创建了一个项目并生成了所需的密钥。 为了安全起见,以下键已更改。 除了第一个带有订单号的回声外,没有显示任何回声。 我的程序员让这段代码可以工作,所以我知道没关系 - 控制台上的设置有误,但我需要一个线索:
完整的代码 - 就像我说的,它已经过测试并适用于另一个项目。
if(isset($_GET['orderid']) )
{
$_SESSION['oid']= $_GET['orderid'];
}
echo $_GET['orderid'];
$client = new Google_Client();
$client->setApplicationName("API Project");
$client->setClientId('9999999999999.apps.googleusercontent.com');
$client->setClientSecret('xxxxxxxxxxxxxxxxxxxxxxxxx');
$scriptUri = "http://".$_SERVER["HTTP_HOST"].$_SERVER['PHP_SELF'];
$client->setRedirectUri($scriptUri);
//$client->setDeveloperKey('AIxxxxxxxxxxxxx'); - SERVER APPS
$client->setDeveloperKey('AIxxxxxxxxxxxxxxx'); // - WEB APPS
$cal = new Google_CalendarService($client);
if (isset($_GET['logout'])) {
unset($_SESSION['token']);
}
if (isset($_GET['code'])) {
echo $_GET['code'];
$client->authenticate($_GET['code']);
$_SESSION['token'] = $client->getAccessToken();
header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}
if (isset($_SESSION['token'])) {
echo $_SESSION['token'];
$client->setAccessToken($_SESSION['token']);
}
if ($client->getAccessToken()) {
$calList = $cal->calendarList->listCalendarList();
//print "<h1>Calendar List</h1><pre>" . print_r($calList, true) . "</pre>";
$_SESSION['token'] = $client->getAccessToken();
// 数据库访问就在这里,就像我说的,它已经过测试并且可以工作
echo "<center>Event has successfully added to Your Google Calendar...</center>";
unset($_SESSION['oid']);
} else {
$authUrl = $client->createAuthUrl();
print "<a class='login' href='$authUrl'>Click Here for Google Authorization!</a>";
}
【问题讨论】:
-
我们需要的不仅仅是“它不起作用”。你怎么知道它不起作用?你遇到了什么错误?
-
而且,是的,代码在我看来并不“OK”。你是
echoing 数组值,但没有确保它们已设置;您不处理任何可能的错误;$cal已创建但从未使用过;你是echoing 的东西之后 重定向。此代码可能会以多种方式失败。 -
orderid 没有回显,没有日历条目,也没有消息: if ($client->getAccessToken()) { echo "
事件已成功添加到您的 Google 日历... ";未设置($_SESSION['oid']); } -
OK - 我将代码更新为完整代码,这样您就可以看到一切正常,但控制台中的某些内容设置错误。该部分的说明不具体,充其量是旧的。
-
在移动回声之后,我知道这行代码被破坏了:$calList = $cal->calendarList->listCalendarList();