PHP Facebook durumunu almak için işlev?

9 Cevap php

Benim en son Facebook durum güncellemelerini almak için iyi, basit bir PHP fonksiyonu arıyorum. Herkes birini biliyor musun?

Teşekkürler!

EDIT: aşağıda yarım solüsyonu ilave ettik.

Ya da herkes RSS beslemesi okumak ve son durum güncellemesini tükürmek için iyi bir yol bilen varsa?

9 Cevap

Ben API rotayı kullanmak olamazdı beri, ben de buldum RSS ile gitti: http://www.new.facebook.com/minifeed.php?filter=11

Ve benim Facebook durum için RSS beslemesi ayrıştırmak için, benim kendi değişiklikler bazı, aşağıdaki PHP fonksiyonunu, called StatusPress kullanılır. Harika çalışıyor!

A hızlı onay PEAR bulundu Services_Facebook

Bu tamamlanmamış bir cevap, ama bu şimdiye kadar kazanılmış ettik budur:

Birincisi: add the developer application on FB. Sonra yeni bir uygulama oluşturun. Ne istersen onu aramak.

İkincisi: Download the PHP client. Hostunuz üzerinde yere Dökümü, yani / facebook /

Üçüncüsü: Kendinizi bir php dosyasına başlamak için aşağıdaki acemi kodu kopyalayın:

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

Other info:

  • You must be logged in and have the application added. OR you give the application offline_access permissions and have the aapplication added.
  • You can add offline_access by typing in the following url: http://www.facebook.com/authorize.php?api_key=YOUR_API_KEY&v=1.0&ext_perm=offline_access
  • İzinler hakkında daha fazla bilgi burada bulunabilir: http://wiki.developers.facebook.com/index.php/Extended_permissions
  • I'm at a stopping point: anything my program calls the fql query or users_getInfo, my page stops executing the php? I'm guessing there are a limited amount of calls for new applications? I've never done any FB development so I'm completely new to it. Maybe make the call and save your recent status (or most recent statuses) in your own DB to prevent excessive calls to the API?

Ben bu kimse başlamanıza yardımcı olur umarım!

Eğer (onların gizlilik ayarlarına bağlı olarak) o kişi ya da arkadaşı olmadığınız sürece EDIT: Bu offline_access üzerinde olsa bile, FB someones durumuna erişmek izin olmayacak gibi görünüyor.

http://www.new.facebook.com/minifeed.php?filter=11: Ben ancak, nihayet yeni profil sürümde RSS beslemesi bulmak için yönetmek

Ben en son facebook durumunuzu almak için bir yol bulduk. Bu bunu nasıl olduğunu:

1) Create a facebook app, ve uygulama sırrını ve uygulama id kopyalayın.

2) profilinize app read_stream ve offline_access verin. (Http://developers.facebook.com/docs/authentication/permissions) uygulaması bir access_token ihtiyaçları son durumunu almak için. Offline_access kazandırdılar access_token sona erecek "asla" olmalıdır. Bunu yapmanın en kolay yolu, bu kod tarafından oluşturulan düğmesini tıklatın için: ('app id' doldurmak için emin ve gerçek çerez ayarlanmış olabilir!)

<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) Şimdi bunu kullanarak ne access_token bulmaya çalışın. Access_token fbs_appId çerez kaydedilir. Tarayıcınızı kullanarak veya kullanarak bulun $_COOKIE['fbs_appId']. access_token=... arayın.

4) Şimdi var bir (umarım) aşağıdaki kodu kullanabilirsiniz access_token dolan asla:

$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) mesajı bölüm bulunması gerekir: $response['data'][0]['message']

Ben erişim belirteci geçerli NASIL uzun bilmiyorum. Facebook diyor ki:

Herhangi bir zamanda kullanıcı adına yetkili isteklerini gerçekleştirmek için uygulama sağlar. Varsayılan olarak, çoğu erişim belirteçleri aktif uygulamayı kullanırken uygulamaları yalnızca kullanıcı adına isteklerini yapmak sağlamak için kısa bir süre sonra sona erer. Bu izin, uzun ömürlü bizim OAuth bitiş noktası tarafından döndürülen erişim belirteci yapar.

Sadece son durumunu almak istiyorsanız burada bir gerçekten basit bir fonksiyonudur. Bu Facebook SDK veya bir şeye bağlı değildir. Sadece CURL ve JSON desteğine ihtiyacımız var.

Simple PHP function to get facebook status

Ben PEAR ile birlikte almak gibi asla, ama sen benden daha iyi şans varsa, o PEAR çözüm en iyi yol, uzun vadeli görünüyor.

Başka bir fikir Facebook Developer API kütüphane keşfetmek ve o size aradığınız her şeyi verebilir olmadığını görmektir.

Son olarak, bir RSS beslemesi almak için bir yol olarak kullanılan ... ama artık çalışmıyor herhangi bir talimat bulmak için görünmüyor olabilir, ama bu sizi ilgilendiren eğer Facebook yardım etrafatakılmayı olabilir. Mine bu gibi bir şey arıyor biter:

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

Ben geçerli bir access_token almak için Jens 'mesajı kullanarak çalışma var. Sonra, ben durum mesajları ve (daha fazla ya da daha az durum mesajları görüntülemek için $ sınırını değiştirmek, ya da değiştirmek için bir form kullanabilirsiniz) aşağıdaki kodu kullanarak xml dosyasından gönderme zamanını ayıklanır.

Facebook ID ve erişim koymak için emin olun size (Jens' post bakınız) oluşturduğunuz app var belirteci. Bu komut dosyası çıkışını kontrol edebilirsiniz here.

Eğlenin!

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

}
?>

Ben son birkaç gün içinde öğreticiler yükler denedim ve bunların hiçbiri çalıştım. Ben onların API gereksinimleri değişen Facebook'a nedeniyle olabilir düşünüyorum. Bu şu anda çalışıyor buldum tek:

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

Sadece hızlı yolu (www.phpforfb.com/en/) PHPforFB çerçeve kullanmak.

Kod şöyle görünür:

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**
        }
    }
}