Autor Tema: Google Reader API con PHP (Obtiene tus últimos items + login)  (Leído 2448 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado WHK

  • 吴阿卡
  • Administrador
  • Aportador
  • *****
  • Mensajes: 555
  • Karma: +15/-3
  • Coder
    • Yahoo Instant Messenger - yan_uniko_102
    • Ver Perfil
    • WHK
    • Email
Hize un pequeño código en php donde puedes obtener acceso a google reader desde php, es bien util pensando en que tienes multiples RSS administrados por google, por ejemplo puedes tomar todos los ultimos items y hacer que el mismo script te los publique en tu blog o foro de forma automática.

Código: php [Seleccionar]
<?php

class googleReader{

    var $sesion;
    var $lastError;
    var $bufferNoticias;
    var $contextAuth;
   
    function __construct(){
        $this->sesion = array(
            'SID'    => '',
            'LSID'    => '',
            'Auth'    => '',
            'token'    => ''
        );
    }
   
    function login($mail = false, $pass = false){
        if(!$buffer = file_get_contents('https://www.google.com/accounts/ClientLogin?service=reader&source=reader&Email='.urlencode($mail).'&Passwd='.urlencode($pass))){
            $this->lastError = 'Imposible conectar.';
            return false;
        }

        if(buffer == 'Error=BadAuthentication'){
            $this->lastError = 'Contrase&ntilde;a inv&aacute;lida.';
            return false;
        }
       
        if(!$buffer = explode('<br />', str_ireplace(array('<br />', '<br>','<br/>'), '<br />', nl2br($buffer)))){
            $this->lastError = 'Google no ha respondido correctamente.';
            return false;
        }

        foreach($buffer as $line){
            $line = explode('=', $line);
            if(in_array(trim($line[0]), array('SID', 'LSID', 'Auth')))
                $this->sesion[trim($line[0])] = trim($line[1]);
            unset($line);
        }
       
        $this->contextAuth = stream_context_create(array(
            'http' => array(
                'header' => 'Authorization: GoogleLogin auth='.$this->sesion['Auth']."\r\n"
            )
        ));
       
        if(!$this->sesion['token'] = file_get_contents('http://www.google.com/reader/api/0/token', false, $this->contextAuth)){
            $this->lastError = 'Imposible obtener el token de seguridad.';
            return false;
        }
       
        return true;
    }
   
    function obtenerNoticias(){
        return ($this->bufferNoticias = json_decode(file_get_contents('http://www.google.com/reader/api/0/stream/contents/user/-/state/com.google/reading-list?ck='.time(), false, $this->contextAuth)));
    }

}

if($_POST){
    $googleReader = new googleReader();
    if($googleReader->login('yan.uniko.102@gmail.com', $_POST['pass'])){
       
        echo '<pre>'.htmlspecialchars(print_r($googleReader->obtenerNoticias(), true), ENT_QUOTES).'</pre>';
       
    }
}

?>

<?php if($googleReader->lastError){ ?>
    <?php echo $googleReader->lastError; ?><br />
    <br />
<?php } ?>
<form action="?" method="post">
    Pass: <input type="password" name="pass" value="" autocomplete="off" /> <input type="submit" value="Ingresar" />
</form>


Por defecto te entregará un objeto para que puedas manipular a gusto :)
Mi WEB - The Hacktivism is not a crime - Si no lo hago yo, que lo hagan otros -
Si has encontrado útil este articulo recuerda que puedes ayudarnos con tu donación voluntaria la cual ayudará al staff y a la mantención del foro.

Desconectado alexander1712

  • Recién llegado
  • *
  • Mensajes: 3
  • Karma: +0/-0
  • [H]arkonnen
    • Ver Perfil
Re:Google Reader API con PHP (Obtiene tus últimos items + login)
« Respuesta #1 : enero 30, 2013, 02:13:39 pm »
se mira bien el código, me gustó mucho.

saludos!


. . . . . . . .