2013-05-12 83 views
0

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

我有Facebook的object.I打印它的方法,并尝试printint用户名,而我登录到Facebook。 这没有奏效。 我的问题如下: 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.If我在浏览器中使用,我得到了一系列的弹出窗口(你允许应用程序布拉布拉) //我读的地方,如果我最后parametere更改代码,并使用卷曲,我会得到令牌的响应 //打印的返回URL的屏幕上,但不会发生

$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); 

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

非常感谢。

+0

您需要阅读并了解OAuth2登录流程。 developers.facebook.com上的“身份验证”下有很多教程。上面的代码是不完整的,你从来没有实际登录到FB。拥有一个FB API密钥是不够的,你需要来自用户的认证令牌(即使它自己!)。 – 2013-05-13 06:56:34

+0

好的。所以你所说的基本上是:step1)从用户那里获取认证令牌,然后我可以代表他发布呢?我是否还需要使用Facebook应用来做到这一点? – 2013-05-13 09:39:01

+0

感谢您的回复 – 2013-05-13 09:40:06

回答

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/

相关问题