PHP-funksjonen for å få Facebook-status?

stemmer
9

Jeg leter etter en god, enkel PHP-funksjonen for å få de nyeste Facebook-statusoppdateringer. Noen som vet om en?

Takk!

EDIT: Jeg har lagt til en halv-løsning under.

Eller om noen vet en god måte å lese på RSS-feed og spytte ut den siste statusoppdatering?

Publisert på 20/12/2008 klokken 21:44
kilden bruker
På andre språk...                            


10 svar

stemmer
6

En rask sjekk på PEAR funnet Services_Facebook

Svarte 20/12/2008 kl. 21:53
kilden bruker

stemmer
1

Jeg har aldri synes å komme sammen med PEAR, men hvis du har bedre flaks enn jeg, så PEAR løsningen synes den beste ruten lang sikt.

En annen idé er å utforske Facebook Developer API bibliotek og se om det kan gi deg noe du leter etter.

Til slutt, det pleide å være en måte å få en RSS-feed ... men jeg kan ikke synes å finne noen instruksjoner som fungerer lenger, men du kan rote rundt Facebook hjelp hvis du er interessert. Mine ender opp som ser omtrent slik ut:

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

Svarte 20/12/2008 kl. 22:09
kilden bruker

stemmer
3

Dette er en ufullstendig svar, men dette er hva jeg har fått så langt:

Først: legge utvikleren programmet på FB . Deretter oppretter du en ny søknad. Kall det hva du vil.

Second: Last ned PHP klienten. Dumpe den et sted på din webhost, dvs. / facebook /

Tredje: Kopier følgende nybegynner kode for å få deg i gang i en php fil:

 <?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
 ?>

Annen info:

Jeg håper dette hjelper noen å komme i gang!

EDIT: Det virker som FB ikke vil la deg få tilgang til noens status, selv om offline_access er på, med mindre du er som person, eller deres venn (avhengig av deres personverninnstillinger).

Jeg gjorde imidlertid, til slutt klarer å finne RSS-feed i den nye profilen versjon: http://www.new.facebook.com/minifeed.php?filter=11

Svarte 21/12/2008 kl. 09:03
kilden bruker

stemmer
0

Siden jeg ikke kunne bruke API rute, gikk jeg med RSS finnes på: http://www.new.facebook.com/minifeed.php?filter=11

Og brukte følgende PHP-funksjonen, kalt StatusPress , med noen av mine egne endringer, for å analysere RSS-feed for min Facebook-status. Fungerer bra!

Svarte 04/01/2009 kl. 19:35
kilden bruker

stemmer
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>
Svarte 23/04/2010 kl. 15:29
kilden bruker

stemmer
2

Jeg har funnet en måte å hente den siste facebook status. Slik gjør du:

1) Lag en facebook app , og kopiere programmet hemmelig og søknad id.

2) Gi app read_stream og offline_access profilen din. ( Http://developers.facebook.com/docs/authentication/permissions ) For å hente den siste status app trenger en access_token. Med offline_access gitt access_token skal "aldri" utløper. Den enkleste måten å gjøre dette på er å klikke på knappen genereres av denne koden: (husk å fylle ut 'din app id' og sette cookie for å 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) Nå prøver å finne ut hva access_token den bruker. Den access_token lagres i fbs_appId cookie. Finn den ved hjelp av nettleseren din eller bruke $_COOKIE['fbs_appId']. Se etter access_token=....

4) Nå som du har en (forhåpentligvis) aldri utløper access_token kan du bruke følgende kode:

$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) Meldingen delen bør plasseres: $response['data'][0]['message']

Jeg vet ikke hvor lenge tilgangen token er gyldig. Facebook sier:

Gjør din søknad for å utføre autoriserte forespørsler på vegne av brukeren når som helst. Som standard, de fleste tilgang utløper etter en kort tidsperiode for å sikre programmer bare gjøre forespørsler på vegne av brukeren når aktivt bruker programmet. Denne tillatelsen gjør tilgangstokenet returnert av våre OAuth endepunkt langlivet.

Svarte 27/04/2010 kl. 08:56
kilden bruker

stemmer
1

Jeg fikk det til å fungere ved hjelp av Jens' innlegg for å hente en gyldig access_token. Da jeg pakket ut statusmeldinger og tiden for innlegg fra xml filen ved hjelp av følgende kode (du kan endre $ grense for å vise mer eller mindre statusmeldinger, eller bruke et skjema for å endre det).

Sørg for å sette i Facebook-ID og tilgangstokenet du fikk fra programmet du opprettet (se Jens' innlegg ). Du kan sjekke resultatet av dette skriptet her .

Ha det gøy!

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

}
?>
Svarte 01/09/2010 kl. 21:02
kilden bruker

stemmer
2

Her er en veldig enkel funksjon hvis du bare ønsker å få siste status. Det er ikke avhengig av Facebook SDK eller noe. Du trenger bare krølle og JSON støtte.

Enkel PHP-funksjonen for å få facebook status

Svarte 09/11/2010 kl. 20:57
kilden bruker

stemmer
1

Jeg har prøvd masse tutorials i løpet av de siste dagene, og ingen av dem har jobbet. Jeg tror det kan være grunn til facebook endre sine api krav. Dette er den eneste jeg fant som fungerer i øyeblikket:

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

Svarte 16/06/2011 kl. 12:19
kilden bruker

stemmer
1

Bare bruk PHPforFB rammeverk ( www.phpforfb.com/en/ ) for den raskeste måten.

Koden ser slik ut:

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**
        }
    }
}
Svarte 20/02/2012 kl. 19:10
kilden bruker

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