0

我正在使用此代码,但它返回空数据数组。我的 access_token 拥有所有权限。
我知道 PAGE_ID,现在我需要从此页面获取事件。
谢谢

    <div id="fb-root"></div>
    <script>
      window.fbAsyncInit = function() {
        FB.init({
          appId      : APP_ID, // App ID
          status     : true, // check login status
          cookie     : true, // enable cookies to allow the server to access the session
          xfbml      : true  // parse XFBML
        });
        // Additional initialization code here
      };

      // Load the SDK Asynchronously
      (function(d){
         var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
         if (d.getElementById(id)) {return;}
         js = d.createElement('script'); js.id = id; js.async = true;
         js.src = "//connect.facebook.net/en_US/all.js";
         ref.parentNode.insertBefore(js, ref);
       }(document));

        var interval = setInterval(function() {
            if (typeof FB != 'undefined') {
                clearInterval(interval);
                FB.api('/' + PAGE_ID +'/events?access_token=' + ACCESS_TOKEN, function(response) {
                    //do something with response
                });
            }
        }, 20); 
    </script>
4

2 回答 2

1

从您的代码中不清楚您是如何获取 access_token 的 - 您是否使用您需要检索事件的页面\帐户的访问令牌?对于页面事件,我一直在做的方式(不确定我在哪里采用了这种技术)是遍历用户帐户以获取相关页面的访问令牌。像这样的东西(php)

$accounts = $facebook->api('/me/accounts');
foreach($accounts['data'] as $account){
    if($account['id'] == $page_id){
        $page_access_token = $account['access_token'];
    }
}
于 2012-05-07T14:33:03.943 回答
1

我从http://developers.facebook.com/tools/explorer/获得的应用程序的第一个 access_token是错误的。(也许它只适用于测试模式)因为我无法通过这个 access_token 获取事件。
http://developers.facebook.com/docs/authentication/applications/上写着:

应用程序访问令牌通常不会过期。一旦生成,它们将无限期有效。
要获取应用程序访问令牌,请在以下位置执行 HTTP GET: https ://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&grant_type=client_credentials

我使用 HTTP GET 获得了 access_token,通过这个 access_token 我从 facebook 页面获取事件:https ://graph.facebook.com/PAGE_ID/events

于 2012-05-14T15:06:17.683 回答