Php AuthSub和Blogger

Php AuthSub和Blogger,php,curl,blogger,authsub,Php,Curl,Blogger,Authsub,我正在尝试检索给定用户的博客列表。 我想我已经成功地授权自己使用所有的代币,但是当我要求列出博客时,我收到了一个302的临时移动。 我正在使用curl发送请求 在我的回调页面中,我将令牌升级为会话令牌: $header = array(); $header[] = 'GET /accounts/AuthSubSessionToken HTTP/1.1'; $header[] = 'Authorization: AuthSub token="'.$_GET['token'].'"'; $curl

我正在尝试检索给定用户的博客列表。 我想我已经成功地授权自己使用所有的代币,但是当我要求列出博客时,我收到了一个302的临时移动。 我正在使用curl发送请求

在我的回调页面中,我将令牌升级为会话令牌:

$header = array();
$header[] = 'GET /accounts/AuthSubSessionToken HTTP/1.1';
$header[] = 'Authorization: AuthSub token="'.$_GET['token'].'"';

$curl = curl_init('https://www.google.com/accounts/AuthSubSessionToken');
curl_setopt( $curl, CURLOPT_HTTPHEADER, $header );
curl_setopt( $curl, CURLOPT_HEADER, true );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );
$response = curl_exec( $curl );
我得到的答复是:

HTTP/1.1 200 OK
Content-Type: text/plain; charset=UTF-8
Date: Thu, 15 Jul 2010 20:08:07 GMT
Expires: Thu, 15 Jul 2010 20:08:07 GMT
Cache-Control: private, max-age=0
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Content-Length: 39
Server: GSE
好的,现在我想我已经准备好进行数据检索了,我要做以下工作:

$headers = array();
$headers[] = 'GET /feeds/default/blogs HTTP/1.1';
$headers[] = 'Authorization: AuthSub token="'.$token.'"';
$headers[] = 'Host: www.blogger.com';

$curl = curl_init( 'http://www.blogger.com' );
curl_setopt( $curl, CURLOPT_CONNECTTIMEOUT, 5 );
curl_setopt( $curl, CURLOPT_TIMEOUT, 5 );
curl_setopt( $curl, CURLOPT_PORT, 80 );
curl_setopt( $curl, CURLOPT_HEADER, true );
curl_setopt( $curl, CURLOPT_HTTPHEADER, $headers );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $curl, CURLOPT_MAXREDIRS, 5);
$reply = curl_exec( $curl );
但我总是收到一张302的临时搬家票。 我已经检查过我没有启用安全模式,也没有启用openbasedir来允许CURLOPT_FOLLOWLOCATION工作,我还检查了

curl_getinfo( $curl, CURLINFO_EFFECTIVE_URL );
上次请求的url是什么,以确保curl正在尝试重定向

也许我做错了什么


PD:显然,我使用了提取会话令牌的代码,但我仔细检查了它,并获取了标题的正确部分。

如果您检查
curl\u getinfo($curl)的输出,你有重定向计数吗?如果是这样:如果是5,我会将maxredirs设置得更高

如果不是的话,我会去

curl_setopt($curl,CURLOPT_VERBOSE,true);
curl_setopt($curl,CURLOPT_STDERR, STDOUT)
。。。并检查它的输出

也许设置起来很简单(从未使用过blogger界面):


好的,我解决了。我需要为第三个curl_init设置url:“这解决了我的问题。重定向计数为2,所以我的设置(目前)足够了。”。无论如何,我解决了它,这是一个指定的url问题。
curl_setopt($curl,CURLOPT_UNRESTRICTED_AUTH,true);