Funkcja PHP, aby uzyskać status Facebook?

Szukam dobrej, prostej funkcji PHP, aby uzyskać najnowsze aktualizacje statusu Facebook. Ktoś o nim wie?

Dzięki!

EDIT: dodałem pół-rozwiązanie poniżej.

A może ktoś zna dobry sposób na czytanie w kanale RSS i wypluwanie ostatniej aktualizacji statusu?

Author: Bryan Denny, 2008-12-21

10 answers

Szybkie sprawdzenie gruszka znaleziono Serwis_facebook

 6
Author: TonyUser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-20 21:53:54

To jest niekompletna odpowiedź, ale to jest to, co dostałem do tej pory:

Najpierw: Dodaj aplikację programisty na FB . Następnie utwórz nową aplikację. Nazywaj to jak chcesz.

Drugi: Pobierz klienta PHP. wrzuć go gdzieś na swój webhost, np. /facebook /

Po Trzecie: skopiuj następujący kod początkujący, aby rozpocząć pracę w pliku 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
 ?>

Inne informacje:

  • musisz być zalogowany i mieć na aplikacja dodana. Albo dasz aplikacja offline_access uprawnienia i mieć dodana aplikacja.
  • możesz dodać offline_access wpisując w poniższym adresie url: http://www.facebook.com/authorize.php?api_key=YOUR_API_KEY&v=1.0&ext_perm=offline_access
  • więcej informacji o uprawnieniach można znaleźć tutaj: http://wiki.developers.facebook.com/index.php/Extended_permissions
  • jestem w punkcie zatrzymania: wszystko, co moje program wywołuje zapytanie fql lub users_getInfo, Moja Strona się zatrzymuje wykonywanie php? Zgaduję istnieje ograniczona liczba połączeń do nowych zastosowań? Nigdy nie wykonałem wszelkie prace na FB więc jestem zupełnie nowa. Może zrobić zadzwoń i zapisz swój ostatni status (lub najnowsze statusy) w Twoim własne DB, aby zapobiec nadmiernym wywołaniom do API?

Mam nadzieję, że to pomoże komuś zacząć!

EDIT: wygląda na to, że FB nie pozwoli ci uzyskać dostępu do czyjegoś statusu, nawet jeśli offline_access jest włączony, chyba że jesteś tą osobą lub jej przyjacielem(w zależności od ustawień prywatności).

Udało mi się jednak w końcu znaleźć kanał RSS w nowej wersji profilu: http://www.new.facebook.com/minifeed.php?filter=11

 3
Author: Bryan Denny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-21 10:12:21

Znalazłem sposób, aby pobrać twój najnowszy status na facebook ' u. Tak to się robi:

1) Utwórz aplikację facebook i skopiuj tajną aplikację i identyfikator aplikacji.

2) przyznaj aplikacji read_stream i offline_access do swojego profilu. ( http://developers.facebook.com/docs/authentication/permissions ) aby pobrać swój najnowszy status, aplikacja potrzebuje access_token. Z offline_access przyznane access_token powinien" nigdy " wygaśnie. Najprostszym sposobem na to jest kliknij przycisk wygenerowany przez ten kod: (pamiętaj, aby wypełnić "your app id" i ustawić cookie na 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) Teraz spróbuj dowiedzieć się, jakiego access_token używa. Access_token jest zapisywany w pliku cookie fbs_appId. Znajdź go za pomocą przeglądarki lub za pomocą $_COOKIE['fbs_appId']. Szukaj access_token=....

4) Teraz, gdy masz (miejmy nadzieję) nigdy nie wygasający access_token możesz użyć następującego kodu:

$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) część wiadomości powinna znajdować się: $response['data'][0]['message']

Nie wiem jak długo dostęp token jest ważny. Facebook mówi:

Umożliwia Twojej aplikacji wykonywanie autoryzowanych żądań w imieniu użytkownika w dowolnym momencie. Domyślnie większość tokenów dostępu wygasa po krótkim czasie, aby zapewnić, że aplikacje składają żądania tylko w imieniu użytkownika, gdy aktywnie korzystają z aplikacji. To uprawnienie sprawia, że token dostępu zwracany przez nasz punkt końcowy OAuth jest długotrwały.

 2
Author: Jens,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-27 08:56:30

Oto bardzo prosta funkcja, jeśli chcesz uzyskać najnowszy status. To nie zależy od Facebook SDK lub cokolwiek. Potrzebujesz tylko wsparcia CURL i JSON.

Prosta funkcja PHP do uzyskania statusu facebook

 2
Author: Lenny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-09 20:57:56

Wydaje mi się, że nigdy nie dogaduję się z gruszką, ale jeśli masz więcej szczęścia niż ja, rozwiązanie gruszki wydaje się najlepszą drogą na dłuższą metę.

Innym pomysłem jest zbadanie biblioteki Facebook Developer API i zobacz, czy może to dać ci coś, czego szukasz.

Wreszcie, był sposób, aby uzyskać kanał RSS... ale wydaje się, że nie mogę znaleźć żadnych instrukcji, które działają już, ale możesz grzebać wokół pomocy Facebook, jeśli to Cię interesuje. Mój wygląda na coś tak:

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

 1
Author: jasonrm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-20 22:09:07

Uruchomiłem go używając Posta Jensa, aby odzyskać poprawny access_token. Następnie wyodrębniłem komunikaty o statusie i czasie wysłania z pliku xml za pomocą następującego kodu(możesz zmienić $limit, aby wyświetlić więcej lub mniej wiadomości o statusie, lub użyć formularza, aby go zmienić).

Pamiętaj, aby umieścić swój identyfikator Facebook i token dostępu, który otrzymałeś z utworzonej aplikacji (Zobacz Jens' post ). Możesz sprawdzić wyjście tego skryptu tutaj .

Baw się dobrze!
<?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");

}
?>
 1
Author: MichL,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:07:14

Próbowałem wielu samouczków w ciągu ostatnich kilku dni i żaden z nich nie zadziałał. Myślę, że może to być spowodowane zmianą wymagań API przez facebook. W tej chwili tylko to działa:

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

 1
Author: FunnelWebDave,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-16 12:19:38

Wystarczy użyć frameworka PHPforFB ( www.phpforfb.com/en / ) dla najszybszej drogi.

Kod wygląda tak:

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**
        }
    }
}
 1
Author: penko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-20 19:10:59

Ponieważ nie mogłem użyć trasy API, wybrałem RSS znaleziony na: http://www.new.facebook.com/minifeed.php?filter=11

I użyłem następującej funkcji PHP, o nazwie StatusPress, z kilkoma własnymi modyfikacjami, do analizy kanału RSS dla mojego statusu Facebook. Działa świetnie!

 0
Author: Bryan Denny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-04 19:35:07
<?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>
 0
Author: joshmiller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-23 15:29:15