Facebook图形API发布到用户的墙上

时间:2012-06-17 01:55:08

标签: php facebook facebook-graph-api

我正在使用FB图表api将内容发布到用户的墙上。我试图使用这种方法:

$wall_post = array(array('message' => 'predicted the',  'name' => 'predicted the'), 
                array('message' => $winning_team, 'name' => $winning_team, 'link' => 'http://www.sportannica.com/teams.php?team='.$winning_team.'&year=2012'),
                array('message' => 'to beat the', 'name' => 'to beat the',),
                array('message' => $losing_team, 'name' => $losing_team, 'link' => 'http://www.sportannica.com/teams.php?team='.$losing_team.'&year=2012'),
                array('message' => 'on '.$game_date.'', 'name' => 'on '.$game_date.''),
                array('picture' => 'http://www.sportannica.com/img/team_icons/current_season_logos/large/'.$winning_team.'.png'));

        $res = $facebook->api('/me/feed/', 'post', '$wall_post');

但是,令我惊讶的是,您无法将多个链接发布到用户墙。

所以,现在我正在使用图形api将内容发布到用户的墙上,就像spotify的方式一样。所以,现在我已经发现我需要使用开放图表仪表板创建自定义操作和对象。所以,我创建了“预测”动作,并允许它编辑对象“游戏”。

所以,现在我有了代码:

$facebook = new Facebook(array(
    'appId' => 'appID',
    'secret' => 'SECRET',
    'cookie' => true
));

$access_token = $facebook->getAccessToken();
$user = $facebook->getUser();

if($user != 0) 
{
    curl -F 'access_token='$.access_token.'' \
     -F 'away_team=New York Yankees' \
     -F 'home_team=New York Mets' \
     -F 'match=http://samples.ogp.me/413385652011237' \
        'https://graph.facebook.com/me/predict-edit-add:predict'
}

我一直在读错:

  

解析错误:语法错误,意外T_CONSTANT_ENCAPSED_STRING

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

PHP不是shell脚本语言。你不能简单地抛出一个shell命令并期望它能够工作。

您可以简单地使用system()或来自的exec()或相应的函数,而不是尝试调用curl程序(您可以使用curl PHP extension或{{3}}执行此操作) Facebook API。

答案 1 :(得分:1)

您混合使用PHP代码并执行curl命令,您应该从shell调用它:

curl -F 'access_token='$.access_token.'' \
 -F 'away_team=New York Yankees' \
 -F 'home_team=New York Mets' \
 -F 'match=http://samples.ogp.me/413385652011237' \
    'https://graph.facebook.com/me/predict-edit-add:predict'

或者使用PHP-SDK实现相同目的:

$facebook->api('/me/predict-edit-add:predict', 'post', array(
  'away_team'=>'New York Yankees',
  'home_team'=>'New York Mets',
  'match'=>'http://samples.ogp.me/413385652011237'
));