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

ljo96ir5  于 2023-05-27  发布在  其他
关注(0)|答案(2)|浏览(157)

我有一个基于CI的应用程序,它允许用户发布类似于Facebook墙的更新流。
目前,用户可以通过Facebook使用FB连接进行身份验证。
我想为用户提供一种可能性--在我的应用程序的墙上发帖时--也能够将相同的帖子发送到他/她的Facebook墙上。
很明显FB's Graph API支持这一点,但我很难找到一个路线图/代码/库来帮助实现这一点。上面链接上的示例没有帮助,也没有给予我任何如何实现它的想法。
例如,用于此功能的控制器是什么样子的?
我已经找到了Elliot的FB CI库here,但我不确定是否需要它来完成我想要的。
任何建议都非常感谢-谢谢。

tzdcorbm

tzdcorbm1#

建议使用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);
8gsdolmq

8gsdolmq2#

我最终使用了codeigniter helper函数和curl来发布到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);
    }

相关问题