使用私有URL的PHP​​ CURL Google日历

时间:2010-04-29 00:06:59

标签: php curl google-calendar-api

我正在尝试使用私人网址从Google日历中获取一系列事件。我阅读了Google API文档,但我想尝试不使用ZEND库,因为我不知道最终的服务器文件结构是什么,并且避免让其他人编辑代码。

我在发布之前也进行了搜索,并遇到了相同的情况,其中PHP CURL_EXEC返回false,但是如果使用Web浏览器打开URL,我会得到一个JSON文件。由于我使用的是私有网址,我是否真的需要使用ZEND对Google服务器进行身份验证?我正在尝试让PHP在为Flash编码之前清理数组。

$URL = <string of the private URL from Google Calendar>
$ch = curl_init($URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$data = curl_exec($ch);
curl_close($ch);

$result = json_decode($data);

print '<pre>'.var_export($data,1).'</pre>';
Screen output >>> false

1 个答案:

答案 0 :(得分:2)

您可以“自己动手”AuthSub或oAuth实施:

以下摘要摘自: http://code.google.com/apis/calendar/data/2.0/developers_guide_protocol.html#Auth

  

为a获取AuthSub令牌   给定用户,您的应用程序必须   将用户重定向到   AuthSubRequest URL,提示他们   登录他们的Google帐户。该   AuthSubRequest URL可能看起来像   这样:

     

https://www.google.com/accounts/AuthSubRequest?scope=http%3A%2F%2Fwww.google.com%2fcalendar%2Ffeeds%2F&session=1&secure=0&next=http%3A%2F%2Fwww.coolcalendarsite.com%2Fwelcome.html

然后这样做......

GET /accounts/AuthSubSessionToken HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: AuthSub token="yourAuthToken"
User-Agent: Java/1.5.0_06
Host: https://www.google.com
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

然后这样做......

GET /calendar/feeds/default/private/full HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: AuthSub token="yourSessionToken"
User-Agent: Java/1.5.0_06
Host: www.google.com
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

有关AuthSub的更多文档:

http://code.google.com/apis/accounts/docs/AuthSub.html