Facebook api结果只能在我的电脑上运行,但不适用于其他电脑

时间:2013-03-03 21:52:32

标签: php api facebook-graph-api facebook-fql

所以我使用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>';
    }
?>

1 个答案:

答案 0 :(得分:0)

这个代码是从Windows上的WAMP和Mac上的MAMP等本地运行的吗?或者您是从非本地的Web服务器运行它?

如果它是本地的,我会说检查你的配置或者至少尝试两个XAMPP并镜像设置。