如何以编程方式发布到您自己的Facebook页面?

时间:2013-05-12 20:34:18

标签: php facebook

我的情况如下。 我是Facebook应用程序和facebook页面的所有者。我想以编程方式(从代码)发布到此Facebook页面。 据我所知,我需要一个Facebook应用程序才能这样做,所以我创建了一个。 我正在使用facebook php sdk和代码点火器。(我没有使用javascript sdk)。

我有facebook对象。我打印了它的方法,并在登录facebook时尝试使用printint用户ID。 这没用。 我的问题如下: 1)为什么打印facebook id不起作用? 2)以编程方式发布到我的Facebook页面的最简单的解决方案是什么?(来自我的应用程序,或来自我的用户)

我做错了什么? 这是我的代码

$config = array(
  'appId'  => 'xxxx',
  'secret' => 'xxxx',
  'cookie' => true,
);


$this->load->library('facebook', $config);
echo '<pre>';print_r(get_class_methods($this->facebook));

 $id = $this->facebook->getAppId();
 $secret =$this->facebook->getApiSecret();
 $uri = "http://tipsterscorner.com/stats/display/facebook1";//callback_url se pare ca nu e bun

//我构建了facebook url。如果我在浏览器中使用它,我会得到一系列弹出窗口(你允许应用程序使用blabla) //我在某处读到如果我将最后一个参数更改为代码并使用curl,我会在响应中获取令牌 //打印在返回网址的屏幕上,但这不会发生

 $facebook_url = "https://www.facebook.com/dialog/oauth?`client_id=$id&client_secret=$secret&redirect_uri=$uri&scope=publish_stream,offline_access,read_stream,manage_pages&response_type=token";`


$curl = curl_init();
// Set some options - we are passing in a useragent too here
    curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => $facebook_url,
    CURLOPT_USERAGENT => 'Codular Sample cURL Request'
));
// Send the request & save response to $resp
$resp = curl_exec($curl);

这是网址。 http://tipsterscorner.com/stats/display/facebook1

非常感谢。

1 个答案:

答案 0 :(得分:0)

要在Facebook上发布并代表其他人使用该应用,您需要获取user access令牌。有两种Access TokensApp Access TokenUser Access Token。当应用程序代表用户发布时,User Access Token是必需的。当用户为应用程序提供权限时,会生成User Access Token(在浏览器中输入Facebook网址时遇到的对话框弹出窗口)。它完全取决于用户是否授予应用程序代表他们发布的权限。应该开发应用程序来处理这两种情况。用户授予权限(Basic Permission,其中包含用户的所有公开信息)后,将生成用户访问令牌。您可以将其存储在database tableSESSION中。
有时用户访问令牌可能变得无效并且必须检索新令牌。在此期间,curl可用于检索,因为用户已经为该应用授予了权限 http://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/