PHP função para obter status no Facebook?
Pergunta
Eu estou procurando um bom, função PHP simples para chegar em minhas últimas atualizações de status do Facebook. Alguém sabe de um?
Obrigado!
EDIT:. Eu adicionei uma meia-solução abaixo
Ou se alguém sabe uma boa maneira de ler no feed RSS e cuspir a atualização de status recente?
Solução 9
Uma vez que eu não poderia usar a rota API, eu fui com o RSS encontrada em: http://www.new.facebook.com/minifeed.php?filter=11
E usou a seguinte função PHP, chamado StatusPress , com alguma das minhas próprias modificações, para analisar o feed RSS para o meu status no Facebook. Funciona muito bem!
Outras dicas
Uma verificação rápida em PERA encontrados Services_Facebook
Esta é uma resposta incompleta, mas é isso que eu comecei até agora:
Primeiro: adicionar o aplicativo desenvolvedor no FB . Em seguida, criar uma nova aplicação. Chame do que quiser.
Segundo: Baixar o cliente PHP despejá-lo em algum lugar em seu serviço de hospedagem, ou seja, / facebook /
Em terceiro lugar: Copie o seguinte código iniciante para obter-se iniciado em um arquivo 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
?>
Outras informações:
- Você deve estar conectado e ter a aplicação adicionado. OU você dá a offline_access aplicação permissões e ter a aapplication acrescentou.
- Você pode adicionar offline_access digitando na seguinte URL: http://www.facebook.com/authorize.php?api_key = YOUR_API_KEY & v = 1,0 & ext_perm = offline_access
- obter mais informações sobre permissões encontrada aqui: http: //wiki.developers.facebook. com / index.php / Extended_permissions
- Eu estou em um ponto de parada: nada meu programa chama a consulta fql ou users_getInfo, minha página pára executar o php? Estou supondo há uma quantidade limitada de chamadas para novas aplicações? Eu nunca feito qualquer desenvolvimento FB por isso estou completamente novo para ele. talvez fazer a chamada e salvar o seu estatuto recente (ou a maioria dos estados recentes) em sua possuir DB para evitar chamadas excessivos para a API?
Espero que isso ajude alguém começar!
EDIT: Parece que FB não vai deixar você status de acesso de alguém, mesmo que o offline_access está ligado, a menos que você é essa pessoa ou seu amigo (dependendo de suas configurações de privacidade)
Eu fiz no entanto, finalmente conseguiu encontrar o feed RSS na nova versão perfil: http://www.new.facebook.com/minifeed.php?filter=11
Eu encontrei uma maneira de buscar o seu estado mais recente facebook. Isto é como você fazê-lo:
1) Criar um app do facebook , e copiar o seu segredo aplicativo e ID de aplicação .
2) Conceder o read_stream aplicativo e offline_access ao seu perfil. ( http://developers.facebook.com/docs/authentication/permissions ) Para buscar seu status mais recente do aplicativo precisa de uma access_token. Com offline_access concedido a access_token deve "nunca" expirar. A maneira mais fácil de fazer isso é clicar no botão gerado por este código: (! Certifique-se de preencher 'o seu ID de aplicativo' e um conjunto de cookies para 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) Agora, tente descobrir o que access_token ele está usando. O access_token é salvo no cookie fbs_appId. Localizá-lo usando seu navegador ou usando $_COOKIE['fbs_appId']
. Procure access_token=...
.
4) Agora que você tem um (espero) não expirar access_token você pode usar o seguinte 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) A parte da mensagem deve ser implantada: $response['data'][0]['message']
Eu não sei por quanto tempo o token de acesso é válido. Facebook diz:
Permite que o aplicativo para executar solicitações autorizadas em nome do usuário a qualquer momento. Por padrão, a maioria dos tokens de acesso expiram após um curto período de tempo para garantir que as aplicações só fazer pedidos em nome do usuário quando o estiver a utilizar o aplicativo. Esta permissão faz com que o acesso token retornado pelo nosso endpoint OAuth longa vida.
Aqui é uma função muito simples se você apenas deseja obter o status mais recente. Não dependem do Facebook SDK ou qualquer coisa. Você só precisa de suporte a CURL e JSON.
Eu nunca parecem se dar bem com a pera, mas se você tem mais sorte do que eu, então a solução PERA parece o melhor caminho a longo prazo.
Outra idéia é explorar a Facebook Developer API biblioteca e ver se isso pode dar-lhe qualquer coisa que você está procurando.
Por fim, costumava haver uma maneira de obter um feed RSS ... mas eu não consigo encontrar quaisquer instruções que o trabalho mais, mas você pode bisbilhotar Facebook ajuda se que os interesses que você. Mina acaba procurando algo parecido com isto:
http://www.new.facebook.com/feeds/status.php?id=[idnumber]&viewer=[viewer]&key=[key]&format=rss20
Eu tenho que trabalhar usando pós Jens' para recuperar uma access_token válido. Então, eu extraído as mensagens de status e o tempo de postagem do arquivo XML usando o seguinte código (você pode mudar $ limite para exibir mais ou mensagens de status menos, ou usar um formulário para mudá-lo).
Certifique-se de colocar em seu Facebook ID eo token de acesso que você tem a partir do aplicativo que você criou (veja Jens' pós ). Você pode verificar a saída desse script aqui .
Divirta-se!
<?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("<message>", $content); // search for the <message> tag
$message_cnt = count($message);
$msg_index = 0;
$time = explode("<time>", $content); // search for the <time> tag
for($i=1; $i<$message_cnt; $i++)
{
$tmp = explode("</message>", $message[$i]);
$msg[$msg_index] = $tmp[0]; // status message
$tmp2 = explode("</time>", $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");
}
?>
Eu tentei um monte de tutoriais ao longo dos últimos dias e nenhum deles funcionou. Eu acho que pode ser devido ao facebook mudando seus requisitos API. Este é o único que eu encontrei que funciona no momento:
http://www.deanblog.co.uk/article/13/adding-a-facebook-status-feed-to-your-website-with-php
quadro Basta usar PHPforFB ( www.phpforfb.com/en/ ) para a maneira mais rápida.
Os olhares código como este:
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**
}
}
}
<?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>