2010-03-11 65 views
2

我想要獲取我的用戶是管理員的頁面上的信息。此用戶已授予我的fb_connect應用離線訪問權限。我保存了允許離線訪問的session_key(它具有用戶的ID)。我可以使用此會話密鑰發佈到此粉絲頁面。但是,當我嘗試訪問該頁面的信息時,我得到一個SessionExpired錯誤。這沒有意義。看代碼和輸出如下:創建Facebook會話獲取頁面信息

p是一個「個人資料」對象持有的三塊相關的FB數據(USER_ID,session_key可以和頁面ID)


>> fb_session = Facebooker::Session.create 
=> # 
>> fb_session.secure_with!(p.fb_session_key, p.fb_user_id, 0) 
=> nil 
>> fb_session.user.has_permission?("offline_access") 
=> true 
>> fb_session.user.has_permission?("publish_stream") 
=> true 
>> fb_session.user.has_permission?("read_stream") 
=> true 
>> pages = fb_session.fql_query("select fan_count from page where page_id = #{p.fb_page_id}") 
Facebooker::Session::SessionExpired: Session key invalid or no longer valid 
    ... 
>> pages = fb_session.pages(:fields => {:page_ids => p.fb_page_id}) 
Facebooker::Session::SessionExpired: Session key invalid or no longer valid 
    ... 
>> pages = Facebooker::Session.create.fql_query("select fan_count from page where page_id = #{p.fb_page_id}") 
=> [#] 

也許我沒有創造的會話權限或者離線訪問權限不允許我訪問用戶的頁面,即使我有權限推送它。正如你可以看到,當我只使用一個匿名會議,我可以得到粉絲數,我猜是公開的。有沒有人有這個想法?

回答

0

您需要申請manage_pages權限,然後查詢me/accounts圖形對象以獲取用戶管理的頁面(又名賬戶)列表。一旦你有了這些頁面的列表,那麼你可以使用頁面ID來獲取每個頁面的信息。