从Codeigniter应用程序在Facebook墙上发布

时间:2011-06-13 21:37:56

标签: facebook codeigniter post connect

我有一个基于CI的应用程序,允许用户发布类似于Facebook墙的更新流。

目前,用户可以使用FB connect通过Facebook对我的应用进行身份验证。

我想提供一个用户的可能性 - 当发布到我的应用程序的墙上时 - 也可以将相同的帖子发送到他/她的Facebook墙。

似乎很清楚FB's Graph API支持这一点,但我很难找到路线图/代码/库来帮助解决这个问题。上面这个链接上的例子是无益的,并没有让我知道如何实现它。

例如,这个函数的控制器怎么样?

我找到了Elliot的FB CI库here,但我不确定是否需要这样才能完成我想要的工作。

非常感谢任何建议 - 谢谢。

2 个答案:

答案 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);
    }