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