我正在使用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
有什么想法吗?
答案 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'
));