2012-01-30 44 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頁面而不是配置文件,則無法顯示您受邀參加的活動。因爲當你創建一個頁面時,你只有喜歡你的頁面的用戶。這意味着他們可以與您發佈的內容進行互動,但他們無法作爲品牌或公司與您互動。

另一方面,當您創建個人資料時,您擁有的用戶是您的朋友,他們可以與您進行互動以及以多種方式發佈的內容,包括能夠被邀請參加活動。