所以我使用facebook图形API在Facebook上提取我喜欢的页面,它可以在我的基于Windows的计算机上,在所有浏览器上运行。但是当涉及到检查来自另一台计算机的结果时,它不起作用......任何想法为什么? Sandybox模式也被禁用
这是我使用的方法,我使用Graph API与页面的想法获取信息,包括页面的封面图片。下面是一个例子
$pages = $facebook->api("/224837280446");
它正在我的基于Windows的笔记本电脑上工作,但不是在Mac上工作..你的帮助会非常感激。
这是我的配置
<?php
//facebook application
$fbconfig['appid' ] = "xxxxxxxxxxxxxxxxxxxxxxxx";
$fbconfig['secret'] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$fbconfig['baseurl'] = "http://xxxxxxxxxxx.php";
//
if (isset($_GET['request_ids'])){
//user comes from invitation
//track them if you need
}
$user = null; //facebook user uid
try{
include_once "facebook.php";
}
catch(Exception $o){
error_log($o);
}
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => $fbconfig['appid'],
'secret' => $fbconfig['secret'],
'cookie' => false,
));
//Facebook Authentication part
$user = $facebook->getUser();
// We may or may not have this data based
// on whether the user is logged in.
// If we have a $user id here, it means we know
// the user is logged into
// Facebook, but we don稚 know if the access token is valid. An access
// token is invalid if the user logged out of Facebook.
$loginUrl = $facebook->getLoginUrl(
array(
'scope' => 'email,offline_access,publish_stream,user_birthday,user_location,user_work_history,user_about_me,user_hometown',
'redirect_uri' => 'http://www.europe-zone.com/members.php'
)
);
$logoutUrl = $facebook->getLogoutUrl();
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
//you should use error_log($e); instead of printing the info on browser
// d($e); d is a debug function defined at the end of this file
$user = null;
}
}
//if user is logged in and session is valid.
if ($user){
//get user basic description
$userInfo = $facebook->api("/$user");
//Retriving movies those are user like using graph api
try{
$movies = $facebook->api("/$user/movies");
// $pages = $facebook->api("/224837280446");
// $feeds = $facebook->api("/224837280446/feed");
}
catch(Exception $o){
d($o);
}
//update user's status using graph api
//http://developers.facebook.com/docs/reference/dialogs/feed/
if (isset($_GET['publish'])){
try {
$publishStream = $facebook->api("/$user/feed", 'post', array(
'message' => "I love thinkdiff.net for facebook app development tutorials. :)",
'link' => 'http://ithinkdiff.net',
'picture' => 'http://thinkdiff.net/ithinkdiff.png',
'name' => 'iOS Apps & Games',
'description'=> 'Checkout iOS apps and games from iThinkdiff.net. I found some of them are just awesome!'
)
);
//as $_GET['publish'] is set so remove it by redirecting user to the base url
} catch (FacebookApiException $e) {
d($e);
}
$redirectUrl = $fbconfig['baseurl'] . '/members.php?success=1';
header("Location: $redirectUrl");
}
//update user's status using graph api
//http://developers.facebook.com/docs/reference/dialogs/feed/
if (isset($_POST['tt'])){
try {
$statusUpdate = $facebook->api("/$user/feed", 'post', array('message'=> $_POST['tt']));
} catch (FacebookApiException $e) {
d($e);
}
}
//fql query example using legacy method call and passing parameter
try{
$fql = "SELECT page_id FROM page_fan WHERE uid = me()";
$param = array(
'method' => 'fql.query',
'query' => $fql,
'callback' => ''
);
$fqlResult = $facebook->api($param);
}
catch(Exception $o){
// d($o);
}
// Second query
try{
$sql = "SELECT page_id FROM page_fan WHERE uid = me()";
$param = array(
'method' => 'fql.query',
'query' => $sql,
'callback' => ''
);
$sqlResult = $facebook->api($param);
}
catch(Exception $o){
// d($o);
}
}
function d($d){
echo '<pre>';
print_r($d);
echo '</pre>';
}
?>
答案 0 :(得分:0)
这个代码是从Windows上的WAMP和Mac上的MAMP等本地运行的吗?或者您是从非本地的Web服务器运行它?
如果它是本地的,我会说检查你的配置或者至少尝试两个XAMPP并镜像设置。