【问题标题】:Codeigniter and facebook php sdk autopost to company wallCodeigniter 和 facebook php sdk 自动发布到公司墙上
【发布时间】:2013-08-15 11:39:02
【问题描述】:
我已经用 codeigniter 建立了一个网站,并为用户实现了 facebook 登录。那里一切都很好。应用程序连接用户令牌 beig 保存了整个九码。我遇到的麻烦是让网站本身而不是在用户发布完成后登录的用户发布到连接的公司 Facebook 页面。本质上,用户发布了一个列表。然后该网站将该发布帖子提交到我的 Facebook 公司页面,而不是登录用户的 Facebook 墙。 (我已经有这个工作了。我可以让网站登录到 Facebook 以在用户登录的同时发布到墙上吗?
【问题讨论】:
标签:
php
facebook
codeigniter
【解决方案1】:
您将需要获取 Appid、App 密码和访问令牌。您可以扩展访问令牌,使其不会过期。
$graphUrl = 'https://graph.facebook.com/oauth/access_token?client_id='.APPID .'&client_secret='.APPSECRET.'&grant_type=fb_exchange_token&fb_exchange_token='.ACCESS_TOKEN;
$accessToken = @file_get_contents($graphUrl);
parse_str($accessToken); //get the access_token param in the string and would be named $access_token
if(!$access_token) $access_token = $accessToken; //if cannot be extended then just return the access token with 2 hours expiry
为了作为您的公司页面发布,您需要他们的页面 ID。
这是我用来完成所有这些工作的脚本的一部分。它不是 codeigniter,但您将能够看到它是如何工作的。
$config = array(
'appId' => APPID,
'secret' => APPSECRET,
);
$facebook = new Facebook($config);
$facebook->setAccessToken(ACCESS_TOKEN);
// Get User ID
$user = $facebook->getUser();
if ($user) {
try {
$page_id = '************'; //
$page_info = $facebook->api("/$page_id?fields=access_token");
if(!empty($page_info['access_token']) ) {
// do your code stuff
}
} catch etc etc
希望对你有帮助