Pregunta

Busco una función buena y sencilla PHP para obtener mis últimas actualizaciones de estado de Facebook. Alguien sabe de uno?

Gracias!

EDIT:. He añadido a continuación una solución de media

O si alguien sabe una buena manera de leer en el feed RSS y escupir la reciente actualización de estado?

¿Fue útil?

Solución 9

Como no podía utilizar la ruta de la API, fui con la RSS que se encuentra en: http://www.new.facebook.com/minifeed.php?filter=11

Y utilizó la siguiente función de PHP, llamada StatusPress , con alguna de mis propias modificaciones, para analizar la fuente RSS de mi estado de Facebook. Funciona muy bien!

Otros consejos

Una revisión rápida en PEAR encontró Services_Facebook

Esta es una respuesta incompleta, pero esto es lo que he conseguido hasta ahora:

Primero: añadir el desarrollador de aplicaciones en FB . A continuación, crear una nueva aplicación. Llamar lo desea.

En segundo lugar:. Descarga el cliente PHP Volcar en algún lugar de su servicio de hosting, es decir / facebook /

En tercer lugar: Copiar el siguiente código para principiantes sobre cómo empezar en un archivo PHP:

 <?php
 require_once('facebook/php/facebook.php');
 $facebook = new Facebook("YOUR_API_KEY","YOUR_SECRET_KEY");
 $result = $facebook->api_client->fql_query("SELECT status FROM user WHERE uid = YOURIDNUMBER");
 // OR --- they both get the same data
 $result = $facebook->api_client->users_getInfo(YOURIDNUMBER,'status');
 print_r($result);
 echo "<pre>Debug:" . print_r($facebook,true) . "</pre>"; // debug info
 ?>

Otra información:

  • Usted debe estar conectado y tener la aplicación agregó. O le dará la offline_access aplicación permisos y tener la aapplication agregó.
  • Se puede añadir offline_access escribiendo en la siguiente dirección: http://www.facebook.com/authorize.php?api_key = YOUR_API_KEY & v = 1,0 y ext_perm = offline_access
  • más información sobre los permisos encontrar aquí: http: //wiki.developers.facebook. com / index.php / Extended_permissions
  • Estoy en un punto de parada: nada mi programa llama a la consulta o FQL users_getInfo, mi página se detiene ejecutar el php? Estoy adivinando hay una cantidad limitada de llamadas para las nuevas aplicaciones? Yo nunca hecho cualquier desarrollo FB, así que estoy completamente nuevo para él. tal vez hacer la llamada y guardar su estado reciente (o la mayoría) de los últimos estados en su poseer DB para evitar llamadas excesivas la API?

Espero que esto ayude a alguien empezar!

EDIT:. Parece que FB no se le permitirá acceder a someones estado, incluso si el offline_access está encendido, a menos que esté esa persona o su amigo (dependiendo de su configuración de privacidad)

Yo sin embargo, finalmente se las arreglo para encontrar la fuente RSS en la nueva versión de perfil: http://www.new.facebook.com/minifeed.php?filter=11

He encontrado una manera a buscar a su último estado de Facebook. Así es como se hace:

1) Crear una aplicación de Facebook , y copiar su secreto de la aplicación y el ID de aplicación .

2) Conceder el read_stream aplicación y offline_access a su perfil. ( http://developers.facebook.com/docs/authentication/permissions ) Para ir a buscar a su estado más reciente de la aplicación necesita un señal_acceso. Con offline_access concedió el señal_acceso "nunca" debe expirar. La forma más sencilla de hacerlo es hacer clic en el botón que genera este código: (asegúrese de llenar 'su aplicación id' y establecer cookies en true)

<fb:login-button perms="read_stream,offline_access"></fb:login-button>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>FB.init({appId: 'your app id', status: true, cookie: true, xfbml: true});</script>

3) Ahora intenta averiguar qué señal_acceso que está utilizando. El señal_acceso se guarda en la cookie fbs_appId. Localizarlo usando el navegador o mediante $_COOKIE['fbs_appId']. Busque access_token=....

4) Ahora que tiene una (con suerte) nunca se expira señal_acceso puede utilizar el siguiente código:

$access_token='xxxxxxxxxxxxxxxxxxxx';
$appId='123456789132456789';
$appSecret='xxxxxxxxxxxxxxxxxxxx';
$profileId='123456789';

//http://github.com/facebook/php-sdk/blob/master/src/facebook.php
require 'facebook.php';

$facebook = new Facebook(array('appId' => $appId,'secret' => $appSecret));
$response = $facebook->api('/'.$profileId.'/feed?limit=1&access_token='.$access_token);

5) la parte del mensaje debe estar situado: $response['data'][0]['message']

No sé el tiempo que el token de acceso es válido. Facebook dice:

  

permite a su aplicación para realizar solicitudes autorizadas en nombre del usuario en cualquier momento. Por defecto, la mayoría de los testigos de acceso expiran después de un período de tiempo corto para asegurar que las aplicaciones sólo hacen peticiones en nombre del usuario cuando la están utilizando activamente la aplicación. Este permiso hace que el token de acceso devuelto por nuestro punto final de OAuth de larga vida.

Esta es una función muy simple, si lo que desea es obtener el estado más reciente. Que no depende de la SDK de Facebook o nada. Sólo se necesita el apoyo CURL y JSON.

Simple PHP función para obtener el estado de facebook

Me parece que nunca se llevan bien con la pera, pero si usted tiene más suerte que yo, entonces la solución PERA parece la mejor ruta a largo plazo.

Otra idea es explorar la Facebook desarrollador API biblioteca y ver si que es posible dar todo lo que busca.

Por último, solía haber una manera de conseguir un canal RSS ... pero me parece que no puede encontrar instrucciones que trabajar más, pero es posible que hurgar Facebook ayuda si eso te interesa. Mina termina buscando algo como esto:

http://www.new.facebook.com/feeds/status.php?id=[idnumber]&viewer=[viewer]&key=[key]&format=rss20

Lo tengo trabajo utilizando posterior Jens' para recuperar un señal_acceso válida. Entonces, extraje los mensajes de estado y el momento de la publicación del archivo XML usando el siguiente código (se puede cambiar $ límite para mostrar más o menos mensajes de estado, o utilizar una forma de cambiarlo).

Asegúrese de poner en su ID de Facebook y el token de acceso que obtuvo de la aplicación que ha creado (ver Jens' post ). Puede comprobar la salida de este script aquí .

Diviértete!

<?php
if(isset($_POST['limit'])) {
    $limit = $_POST['limit'];
}
else {
    $limit = 3; // number of status messages to display
}
$f = fopen ("https://api.facebook.com/method/status.get?uid=YOUR_FACEBOOK_ID&limit=".$limit."&access_token=YOUR_ACCESS_TOKEN", "r");

while ($line= htmlentities(fgets($f))) {
    if ($line===FALSE) print ("FALSE\n");
    else
    {
        $content = $content." ".$line;
    }
}
fclose ($f);

$message = explode("&lt;message&gt;", $content); // search for the <message> tag
$message_cnt = count($message);
$msg_index = 0;

$time = explode("&lt;time&gt;", $content); // search for the <time> tag

for($i=1; $i<$message_cnt; $i++)
{
    $tmp = explode("&lt;/message&gt", $message[$i]);
    $msg[$msg_index] = $tmp[0]; // status message

    $tmp2 = explode("&lt;/time&gt", $time[$i]);
    $t[$msg_index++] = $tmp2[0]; // time of posting
}

for($i=0; $i<$msg_index; $i++)
{
     echo("<span class=\"status\">".preg_replace('!\015\012|\015|\012!','<br>',$msg[$i])."</span><br>\n
           <span class=\"date\">on ".date("d.m.Y", $t[$i])." at ".date("H:i",$t[$i])."</span><br><br>\n");

}
?>

He intentado un montón de tutoriales en los últimos días y ninguno de ellos ha funcionado. Creo que puede ser debido a facebook cambiar sus requisitos de API. Este es el único que he encontrado que funciona en este momento:

http://www.deanblog.co.uk/article/13/adding-a-facebook-status-feed-to-your-website-with-php

Sólo tiene que utilizar marco PHPforFB ( www.phpforfb.com/en/ ) de la manera más rápida.

El código es el siguiente:

require_once('phpforfb_framework.php');

$structInit = array('app_id' => APP_ID,'app_name' => APP_NAME,'sec_key' => APP_SECKEY);

$FacebookAPP = new PHPforFB($structInit);

if($FacebookAPP->lastErrorCode>0){
    //Creation failed => Display error message and exit
    echo "PHPforFB Error: ".$FacebookAPP->lastErrorCode." -> ".$FacebookAPP->lastError;
}else{
    //PHPforFB framework established

    if($FacebookAPP->userLoggedIn === TRUE){

        //If the user is logged in at Facebook:
        //Here you can determine if the user has at least once before
        //granted basic permissions to your application.
        if($FacebookAPP->userAuthenticated === FALSE){

            //The user has not yet granted permissions
            //**your code here**
        }else{
            //The user has already granted permissions, therefore his Facebook ID
            //is known to us. It is always available in $FacebookAPP->userID:

            $userID = $FacebookAPP->userID;
            //**your code here**
        }
    }
}
<?php
// see http://github.com/facebook/php-sdk/blob/master/facebook.php
require './facebook.php';
// Create our Application instance.
// see http://www.youtube.com/watch?v=jYqx-RtmkeU for how to get these numbers
$facebook = new Facebook(array('appId' => 'XXX','secret' => 'XXX'));
// This call will always work since we are fetching public data.
// this could be /username or /username/friends etc...
// see developer api for FQL for examples
$status = $facebook->api('/haanmc/feed?limit=1');
?>
<p><?php print $status['data'][0]['message']; ?></p>
<p>Likes: <?php print $status['data'][0]['likes']; ?> | Comments: <?php print count($status['data'][0]['comments']['data']); ?></p>
<textarea style="width: 95%; height: 600px;"><?php print_r($status); ?></textarea>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top