我有一个基于CI的应用程序,允许用户发布类似于Facebook墙的更新流。
目前,用户可以使用FB connect通过Facebook对我的应用进行身份验证。
我想提供一个用户的可能性 - 当发布到我的应用程序的墙上时 - 也可以将相同的帖子发送到他/她的Facebook墙。
似乎很清楚FB's Graph API支持这一点,但我很难找到路线图/代码/库来帮助解决这个问题。上面这个链接上的例子是无益的,并没有让我知道如何实现它。
例如,这个函数的控制器怎么样?
我找到了Elliot的FB CI库here,但我不确定是否需要这样才能完成我想要的工作。
非常感谢任何建议 - 谢谢。
答案 0 :(得分:1)
我建议你使用Facebook PHP SDK
在你的控制器中只包括facebook php sdk,例如:https://github.com/facebook/php-sdk/blob/master/examples/example.php
要制作墙贴,以下代码应该可以解决问题:
$wall_post = array('message' => 'this is my message',
'name' => 'This is my demo Facebook application!',
'caption' => "Caption of the Post",
'link' => 'http://mylink.com',
'description' => 'this is a description',
'picture' => 'http://mysite.com/pic.gif',
'actions' => array(array('name' => 'Get Search',
'link' => 'http://www.google.com'))
);
$result = $facebook->api('/me/feed/', 'post', $wall_post);
答案 1 :(得分:1)
我最终使用带有curl的codeigniter辅助函数发布到Facebook。以下是代码。
function facebook($data) {
$CI =& get_instance();
$CI->load->model('fk_model');
$token = $CI->fk_model->fk_cookie();
$attachment = array(
'access_token' => $token['access_token'],
'message' => $data['text'],
'link' => $data['link'],
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://graph.facebook.com/' . $token['id'] . '/feed');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //to suppress the curl output
$result = curl_exec($ch);
curl_close($ch);
}