Tutorial :AuthSub and Blogger



Question:

I'm trying to retrieve a list of blogs of a given user. I think I've successivelly authorizated myself with all the token stuff, but when I ask for the list blog, I recieve a 302 moved temporarily. I'm using curl to send the requests.

In my callback page, I upgrade the token to a session token:

$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 );  

I obtain this response:

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  

Ok, now I think I'm ready to data retrieval, I do this:

$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 );  

But I always receive a 302 moved temporarily. I've checked I have not enabled safe_mode nor openbasedir to allow CURLOPT_FOLLOWLOCATION work, and I also checked with

curl_getinfo( $curl, CURLINFO_EFFECTIVE_URL );  

what was the last url requested to be sure curl is trying the redirect.

Maybe I did some AuthSub step wrong?

PD: Obviously I ommited the code that extracts the session-token, but I double checked it and I grab the correct part of the header.


Solution:1

If you examine the output of curl_getinfo($curl);, do you get a redirect_count? If so: if it's 5 I'd set the maxredirs higher.

If not, I'd set

curl_setopt($curl,CURLOPT_VERBOSE,true);  curl_setopt($curl,CURLOPT_STDERR, STDOUT)  

... and examine it's output.

Maybe it's as simple as setting this (never worked with the blogger interface):

curl_setopt($curl,CURLOPT_UNRESTRICTED_AUTH,true);  

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »