使用FQL检索Facebook事件(权限问题)

时间:2012-01-30 10:31:23

标签: facebook events permissions facebook-php-sdk facebook-fql

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


    //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并且它可以与任何app-id / secret组合使用wine)时它可以正常工作当我将它设置为页面的uid时,我是所有事件的所有者返回。有什么我想念的吗?我仔细检查了我的网页>帐户设置>应用程序,看看我创建的应用是否具有该页面的权限。它是一个公共页面。我在流程中缺少什么来授予此应用程序访问我的页面事件的权限?如果我在Graph API Explorer中使用我为user_events生成的访问令牌运行它,则相同的查询工作正常。

我基本上试图理解为什么一个名为FB Sync Events的特定Wordpress插件没有工作,并且应用程序身份验证似乎失败了因为$ facebook-> api没有返回任何内容我的页面只有fql.query。 QQ

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

据我所知,如果您创建的是Facebook页面而不是个人资料,则无法显示您被邀请参加的活动。从您创建页面时起,您只有喜欢您页面的用户。这意味着他们可以与您发布的内容进行互动,但他们无法与您作为品牌或公司进行互动。

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