使用 PHP 访问 Google Bookmarks 服务器端 [英] Accessing Google Bookmarks server side with PHP
本文介绍了使用 PHP 访问 Google Bookmarks 服务器端的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我曾经使用此 PHP 代码访问我的 Google 书签,服务器端:
$curlObj = curl_init();curl_setopt($curlObj, CURLOPT_URL, "https://www.google.com/bookmarks/?output=rss");curl_setopt($curlObj, CURLOPT_USERPWD, "whatever@googlemail.com:mypassword");curl_setopt ($curlObj, CURLOPT_RETURNTRANSFER, 1);$response = curl_exec($curlObj);回声 $response;curl_close($curlObj);
以前,使用上面的代码,我会看到一个 XML 提要.
现在显示302 您的文档已移动.单击此处".该链接将我带到登录页面.
有什么想法吗?
谢谢.
解决方案
此类授权不再有效.您需要通过 https://accounts.google.com/ServiceLogin
进行身份验证,然后获取 https://www.google.com/bookmarks/?output=rss
>
示例:
<代码>$USERNAME = 'aaa';$密码 = 'bbb';$ch = curl_init();curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (兼容; MSIE 6.0; Windows NT 5.1)");curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);curl_setopt($ch, CURLOPT_TIMEOUT, 120);curl_setopt($ch, CURLOPT_URL,'https://accounts.google.com/ServiceLogin?hl=en&service=bookmarks&continue=http://www.google.com/bookmarks');$data = curl_exec($ch);$formFields = getFormFields($data);//我的获取表单域的代码,问你是否想要$formFields['Email'] = $USERNAME;$formFields['Passwd'] = $PASSWORD;取消设置($formFields['PersistentCookie']);$post_string = '';foreach($formFields as $key => $value) {$post_string .= $key .'= .urlencode($value) .'&';}$post_string = substr($post_string, 0, -1);curl_setopt($ch, CURLOPT_URL, 'https://accounts.google.com/ServiceLoginAuth');curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);$result = curl_exec($ch);$info = curl_getinfo($ch);//echo var_dump($info);if ($info['url']=="https://accounts.google.com/ServiceLoginAuth"){die("登录失败");var_dump($result);} 别的 {curl_setopt($ch, CURLOPT_URL, 'http://www.google.com/bookmarks/?output=rss');curl_setopt($ch, CURLOPT_POST, 0);curl_setopt($ch, CURLOPT_POSTFIELDS, null);$result = curl_exec($ch);var_dump($result);}函数 getFormFields($data){if (preg_match('/(
查看全文