PHP funzione per ottenere lo stato di Facebook?

voti
9

Sto cercando una buona, semplice funzione PHP per ottenere i miei ultimi aggiornamenti di stato di Facebook. Qualcuno sa di uno?

Grazie!

EDIT: Ho una mezza soluzione qui di seguito.

Oppure, se qualcuno conosce un buon modo di leggere nel feed RSS e sputare il recente aggiornamento di stato?

È pubblicato 20/12/2008 alle 22:44
fonte dall'utente
In altre lingue...                            


10 risposte

voti
6

Un rapido controllo sul PEAR trovato Services_Facebook

Risposto il 20/12/2008 a 22:53
fonte dall'utente

voti
1

Non ho mai sembrano andare d'accordo con PEAR, ma se avete più fortuna di me, allora la soluzione PEAR sembra il percorso migliore a lungo termine.

Un'altra idea è quella di esplorare la Developer API di Facebook biblioteca e vedere se questo potrebbe darvi tutto quello che stai cercando.

Infine, ha usato per essere un modo per ottenere un feed RSS ... ma non riesco a trovare tutte le istruzioni che funzionano più, ma si potrebbe frugare Facebook aiuto se che ti interessa. La mia finisce per guardare qualcosa di simile:

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

Risposto il 20/12/2008 a 23:09
fonte dall'utente

voti
3

Questa è una risposta incompleta, ma questo è quello che ho ottenuto finora:

In primo luogo: aggiungere l'applicazione sviluppatore su FB . Quindi creare una nuova applicazione. Chiamalo come vuoi.

Secondo: scaricare il client PHP. Dump da qualche parte sul tuo hosting, cioè / facebook /

Terzo: Copiare il codice seguente principiante di farti iniziato in un file 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
 ?>

Altre informazioni:

  • Devi effettuare il login e disporre l'applicazione aggiunto. O dare i permessi offline_access applicazione e hanno l'aapplication aggiunto.
  • È possibile aggiungere offline_access digitando il seguente URL: http://www.facebook.com/authorize.php?api_key=YOUR_API_KEY&v=1.0&ext_perm=offline_access
  • più informazioni sui permessi trovate qui: http://wiki.developers.facebook.com/index.php/Extended_permissions
  • Sono ad un punto di arresto: niente il mio programma chiama la query FQL o users_getInfo, la mia pagina interrompe l'esecuzione del php? Sto indovinando ci sono una quantità limitata di inviti a presentare nuove applicazioni? Non ho mai fatto qualsiasi sviluppo FB quindi sono completamente nuovo ad esso. Forse effettuare la chiamata e salvare il proprio stato di recente (o la maggior parte stati recenti) nel proprio DB per evitare le chiamate eccessive alle API?

Spero che questo aiuta qualcuno per iniziare!

EDIT: Sembra che FB non ti consente di accedere qualcuno lo stato, anche se l'offline_access è acceso, se non si è quella persona o il loro amico (a seconda delle loro impostazioni di privacy).

Ho fatto però, finalmente riesco a trovare il feed RSS nella nuova versione profilo: http://www.new.facebook.com/minifeed.php?filter=11

Risposto il 21/12/2008 a 10:03
fonte dall'utente

voti
0

Dal momento che non ho potuto utilizzare il percorso API, sono andato con il RSS trovata a: http://www.new.facebook.com/minifeed.php?filter=11

E utilizzata la seguente funzione PHP, chiamata StatusPress , con alcuni dei miei proprie modifiche, per analizzare il feed RSS per il mio stato su Facebook. Funziona alla grande!

Risposto il 04/01/2009 a 20:35
fonte dall'utente

voti
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>
Risposto il 23/04/2010 a 16:29
fonte dall'utente

voti
2

Ho trovato un modo per andare a prendere il tuo ultimo status di Facebook. Ecco come si fa:

1) Creare un applicazione Facebook , e copiare il tuo segreto applicazione e l'applicazione id.

2) Concedere il read_stream app e offline_access al tuo profilo. ( Http://developers.facebook.com/docs/authentication/permissions ) Per recuperare il tuo stato più recente dell'app ha bisogno di un access_token. Con offline_access concesso l'access_token dovrebbe "mai" scadenza. Il modo più semplice per farlo è quello di fare clic sul pulsante generato da questo codice: (assicuratevi di riempire 'l'ID applicazione' e impostare cookie per vero!)

<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) A questo punto cercare di scoprire che cosa access_token si sta utilizzando. L'access_token viene salvato nel cookie fbs_appId. Individuare utilizzando il browser o utilizzando $_COOKIE['fbs_appId']. Cercare access_token=....

4) Ora che si dispone di una (si spera) mai in scadenza access_token è possibile utilizzare il seguente codice:

$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 messaggio deve essere collocato: $response['data'][0]['message']

Non so per quanto tempo il token di accesso è valido. Facebook dice:

Consente l'applicazione per eseguire le richieste autorizzate sul conto dell'utente in qualsiasi momento. Per impostazione predefinita, la maggior parte dei token di accesso scadono dopo un breve periodo di tempo per garantire che le applicazioni fanno solo le richieste per conto dell'utente quando il viene utilizzato attivamente l'applicazione. Questa autorizzazione rende il token di accesso restituito dal nostro endpoint OAuth a lungo vissuto.

Risposto il 27/04/2010 a 09:56
fonte dall'utente

voti
1

Ho ottenuto che funziona tramite posta Jens' per recuperare un access_token valida. Poi, ho estratto i messaggi di stato e il tempo di distacco dal file XML utilizzando il seguente codice (è possibile modificare $ limite per visualizzare più o meno messaggi di stato, o utilizzare un modulo per cambiarlo).

Assicurarsi di mettere nel vostro ID di Facebook e il token di accesso che hai ricevuto dal l'applicazione si è creato (vedi dopo Jens' ). È possibile controllare l'output di questo script qui .

Divertiti!

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

}
?>
Risposto il 01/09/2010 a 22:02
fonte dall'utente

voti
2

Qui è una funzione molto semplice, se si desidera solo per ottenere lo stato più recente. Non dipende sul Facebook SDK o nulla. Hai solo bisogno di supporto CURL e JSON.

funzione PHP semplice per ottenere lo status facebook

Risposto il 09/11/2010 a 21:57
fonte dall'utente

voti
1

Ho provato un sacco di tutorial nel corso degli ultimi giorni e nessuno di loro hanno lavorato. Penso che possa essere dovuto a facebook cambiare le loro esigenze di api. Questo è l'unico che ho trovato che funziona in questo momento:

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

Risposto il 16/06/2011 a 13:19
fonte dall'utente

voti
1

Basta usare PHPforFB quadro ( www.phpforfb.com/en/ ) per il modo più veloce.

Il codice è simile al seguente:

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**
        }
    }
}
Risposto il 20/02/2012 a 20:10
fonte dall'utente

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