Función de PHP para obtener el estado de Facebook?

votos
9

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

¡Gracias!

EDITAR: he agregado una solución a la mitad a continuación.

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

Publicado el 20/12/2008 a las 22:44
fuente por usuario
En otros idiomas...                            


10 respuestas

votos
6

Se encontró un control rápido de PEAR Services_Facebook

Respondida el 20/12/2008 a las 22:53
fuente por usuario

votos
1

Parece que nunca me llevo bien con PEAR, pero si tienes más suerte que yo, entonces la solución PEAR parece la mejor ruta a largo plazo.

Otra idea es explorar la biblioteca de API de desarrollador de Facebook y ver si eso podría darle cualquier cosa que esté buscando.

Por último, solía haber una manera de obtener una fuente RSS ... pero parece que no puedo encontrar ninguna instrucción que funcione más, pero podría buscar ayuda de Facebook si eso le interesa. El mío termina pareciéndose a algo así:

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

Respondida el 20/12/2008 a las 23:09
fuente por usuario

votos
3

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

Primero: agregue la aplicación de desarrollador en FB . Luego crea una nueva aplicación. Llámalo como quieras

Segundo: Descargue el cliente PHP. Tírelo en algún lugar de su servidor web, es decir, / facebook /

Tercero: copie el siguiente código de principiante para comenzar 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:

  • Debe haber iniciado sesión y haber agregado la aplicación. O le otorga a la aplicación permisos de acceso fuera de línea y agrega la aplicación.
  • Puede agregar offline_access escribiendo la siguiente URL: http://www.facebook.com/authorize.php?api_key=YOUR_API_KEY&v=1.0&ext_perm=offline_access
  • más información sobre los permisos encontrados aquí: http://wiki.developers.facebook.com/index.php/Extended_permissions
  • Estoy en un punto de parada: cualquier cosa que mi programa llame a la consulta fql o users_getInfo, ¿mi página deja de ejecutar el php? Supongo que hay una cantidad limitada de llamadas para nuevas aplicaciones. Nunca he hecho ningún desarrollo de FB, así que soy completamente nuevo. Tal vez haga la llamada y guarde su estado reciente (o los estados más recientes) en su propia base de datos para evitar llamadas excesivas a la API.

Espero que esto ayude a alguien a comenzar!

EDITAR: parece que FB no te permitirá acceder al estado de alguien, incluso si el acceso fuera de línea está activado, a menos que seas esa persona o su amigo (dependiendo de su configuración de privacidad).

Sin embargo, finalmente logré encontrar el feed RSS en la nueva versión de perfil: http://www.new.facebook.com/minifeed.php?filter=11

Respondida el 21/12/2008 a las 10:03
fuente por usuario

votos
0

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

Y utilicé la siguiente función de PHP, llamada StatusPress , con algunas de mis propias modificaciones, para analizar el feed RSS de mi estado de Facebook. ¡Funciona genial!

Respondida el 04/01/2009 a las 20:35
fuente por usuario

votos
0
<?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>
Respondida el 23/04/2010 a las 16:29
fuente por usuario

votos
2

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 la aplicación.

2) Conceder el read_stream aplicación y offline_access a su perfil. ( Http://developers.facebook.com/docs/authentication/permissions ) Para traer su último estado 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 cookie para cierto!)

<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 se 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 ubicado: $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 vivido largo.

Respondida el 27/04/2010 a las 09:56
fuente por usuario

votos
1

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 después Jens' ). Puede comprobar la salida de este script aquí .

¡Que te diviertas!

<?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");

}
?>
Respondida el 01/09/2010 a las 22:02
fuente por usuario

votos
2

Aquí 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.

función de PHP simple para obtener el estado de Facebook

Respondida el 09/11/2010 a las 21:57
fuente por usuario

votos
1

He probado 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 la actualidad

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

Respondida el 16/06/2011 a las 13:19
fuente por usuario

votos
1

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**
        }
    }
}
Respondida el 20/02/2012 a las 20:10
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more