使用Facebook PHP SDK发布到用户的Facebook Wall

时间:2011-08-26 23:41:46

标签: php facebook facebook-graph-api

我正在将基于网络的游戏整合到Facebook游戏中。 Facebook登录,获取用户ID,获取用户个人资料图片即可。但我需要将一些事情发布到墙上(例如, John Doe获得了50分!)。

我的Facebook App有 offline_access publish_Stream 权限。

现在我想自动发布一些链接。我正在Facebook PHP SDK使用Yii

我可以获得Facebook用户ID等...但我不知道如何自动将某些东西发布到用户的墙上(例如当用户离线时)。

我正在寻找Graph API Post document的出版头衔。但我需要access_token参数才能使用它。而且我不确定这个access_token在哪里。

3 个答案:

答案 0 :(得分:1)

PHP-SDK 3.1.1

生成应用和用户令牌。 $ app_access_token &的 $的access_token

*如果您具有离线访问权限,则用户access_token将永不过期,除非用户deAuthorizes您的应用程序。当用户离线或不与您的应用程序交互时,您需要使用它来发布到用户墙。*


<?php
require './src/facebook.php';
$facebook = new Facebook(array(
  'appId'  => '135669679827333',
  'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
));
 $user = $facebook->getUser();
 if ($user) {
   try {
     // Proceed knowing you have a logged in user who's authenticated.
     $user_profile = $facebook->api('/me');
   } catch (FacebookApiException $e) {
     error_log($e);
     $user = null;
   }
 }
 if ($user) {
   $logoutUrl = $facebook->getLogoutUrl();
 } else {
   $loginUrl = $facebook->getLoginUrl();
 }
// Create Application Access Token
$app_access = "https://graph.facebook.com/oauth/access_token?client_id=135669679827333&client_secret=xxxxxxxxxxxxxxxxxxxxxxxx&grant_type=client_credentials";
$app_access_token = file_get_contents($app_access);
// If we have a user who is logged in, create access_token with session.
if ($user) {
$access_token = $_SESSION['fb_135669679827333_access_token'];
}
?>

答案 1 :(得分:0)

查看authentication doc,它将向您展示如何获取访问令牌。

答案 2 :(得分:0)

你可以获得像这样的访问令牌

               $access_token = $session['access_token'];

现在使用$ access_token,你需要它

               $my_friends_ids=file_get_contents("https://graph.facebook.com/me/friends?access_token=".$access_token);

这里我得到了所有朋友的ids