我想在我的网站上启用Facebook Auto Post。
首先我创建了一个应用程序,然后按照facebook文档使用facebook-sdk for PHP,我插入APP-ID和APP-SECRET,创建LOGIN-URL和...到我的脚本(所有类似于facebook文档),但我还有问题!!
问题是:
当用户第一次访问我的页面时,他会看到登录链接。当他点击它时,他将重定向到Facebook对话框页面以允许应用程序活动。在此之后,当facebook将用户重定向到我的画布页面时,他再次看到登录链接! (似乎getUser()函数在我的脚本中无法正常工作!)。
基于Facebook指南,用户必须查看用户个人资料详细信息...但仍然可以看到登录链接。
我该如何解决这个问题...?
<?php
require_once("libs/facebook.php");
$config = array(
'appId' => 'XXXX',
'secret' => 'XXXX'
);
$fbConnect = new Facebook($config);
$user_id = $fbConnect->getUser();
if($user_id)
{
try {
$userProfile = $fbConnect->api('/me', 'GET');
echo "Name: " . $userProfile['name'];
} catch (FacebookApiException $e) {
$loginUrl = $fbConnect->getLoginUrl();
echo "<a href='" . $loginUrl . "'>LOGIN 2</a>";
}
}
else
{
$loginUrl = $fbConnect->getLoginUrl(array( 'scope' => 'publish_stream' ));
echo "<a href='" . $loginUrl . "'>LOGIN 1</a>";
}
?>
用户总是看到“登录1”!这意味着$ user_id始终为null(在app允许活动之前和之后)!!在app允许之后(当用户第一次点击loginUrl链接时)我的url查询字符串中有'stat'和'code'!但仍然可以看到“登录1”!
答案 0 :(得分:1)
我想你想发布一条消息,比如“嘿伙计们,我现在正在使用Aref的超级Facebook应用”,对吗?
这可以通过以下几行来完成:
<?php
require_once("/FBAPI/src/facebook.php");
$config = array();
$config['appId'] = 'your_app_id';
$config['secret'] = 'your_app_secret';
$facebook = new Facebook($config);
$user = $facebook->getUser();
if(!$user){
$loginUrl = $facebook->getLoginUrl(array('scope'=>'publish_stream', 'redirect_uri'=>'http://www.example.com'));
}
if($user){
try{
$user_profile = $facebook->api('/me');
$access_token = $facebook->getAccessToken();
$vars = array(
'caption' => 'Aref\'s Facebook Application',
'message' => 'Hey guys, I am now using Aref\'s superawsome Facebook App :D',
'name' => 'Test',
'link' => 'http://www.example.com',
'description' => 'Aref\'s Facebook Canvas App',
'picture' => 'http://fbrell.com/f8.jpg'
);
$result = $facebook->api('/me/feed', 'post', $vars);
if($result){
echo "Post was set";
}
else{
echo "Error!";
}
}
catch(FacebookApiException $e){
error_log($e);
$user = NULL;
}
}
else{
echo '<a href="'.$loginUrl.'"><img src="img/login.png"/></a>';
}
?>