2012-01-30 110 views
0

我试图检索所有我创建的页面的Facebook事件,已被邀请。我创建了一个应用程序,并以下是我从http://www.codeofaninja.com/2011/07/display-facebook-events-to-your-website.html拿到代码:使用FQL检索Facebook事件(权限问题)

 

    //requiring FB PHP SDK 
    require 'fb-sdk/src/facebook.php'; 

    //initializing keys 
    $facebook = new Facebook(array(
     'appId' => '[app_id>], 
     'secret' => '[app_secret]', 
     'cookie' => true, // enable optional cookie support 
    )); 

    $fql = "SELECT name, pic, start_time, end_time, location, description 
       FROM event WHERE eid IN (SELECT eid FROM event_member WHERE uid = 100001660923071) 
       ORDER BY start_time asc"; 
    $param = array(
    'method' => 'fql.query', 
    'query'  => $fql, 
    'callback' => '' 
    ); 

    $fqlResult = $facebook->api($param); 

    print_r($fqlResult); 

现在的问题是,当在查询中的UID从示例代码设置为“221167777906963”(它的UID它工作正常,它适用于任何应用程序ID /秘密组合的葡萄酒),但是当我将其设置为页面的uid时,我是没有任何事件返回的所有者。有什么我失踪?我加倍检查了我的网页>帐户设置>应用程序,以查看我创建的应用程序是否拥有该网页的许可权并且它具有此权限。它是一个公共页面。为了让这个应用程序有权访问我的网页事件,我在流程中缺少什么?如果我使用我为user_events生成的访问令牌在Graph API Explorer中运行它,同样的查询可以正常工作。

我基本上试图了解为什么一个名为FB同步事件的Wordpress插件不工作,应用程序认证是什么似乎失败cuz $ facebook-> api没有返回任何fql.query JUST为我的页面。 QQ

回答

0

要访问页面的事件,您可能需要使用PAGE访问令牌。页面访问令牌很容易获得。对于页面管理员的用户访问令牌,请调用Graph /me/accounts,并在页面中随该页面一起提供该页面的访问令牌。这就是所谓的“页面访问令牌”。然后使用该页访问令牌,调用您的FQL语句。

+0

好的,但我该如何在FQL中使用此访问令牌? – narak 2012-01-31 04:12:36

+0

与查询字符串'&access_token = {TOKEN}一样,始终传递访问令牌' – DMCS 2012-01-31 15:02:28

+0

您可以查看我写的代码吗?我将查询传递给api()方法,并且找不到有关如何向其发送access_token的任何文档。 – narak 2012-01-31 16:00:07

0

据我所知,如果您创建Facebook页面而不是配置文件,则无法显示您受邀参加的活动。因为当你创建一个页面时,你只有喜欢你的页面的用户。这意味着他们可以与您发布的内容进行互动,但他们无法作为品牌或公司与您互动。

另一方面,当您创建个人资料时,您拥有的用户是您的朋友,他们可以与您进行互动以及以多种方式发布的内容,包括能够被邀请参加活动。