2

我正在尝试在我的用户是管理员的页面上获取信息。此用户已授予我的 fb_connect 应用离线访问权限。我已经保存了允许离线访问的 session_key(其中包含用户 ID)。我可以使用此会话密钥发布到此粉丝页面。但是当我尝试访问该页面的信息时,我收到一个 SessionExpired 错误。这没有意义。看下面的代码和输出:

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}")
=> [#]

也许我没有创建会话权限,或者即使我有权推送它,离线访问也不会让我访问用户页面。正如你所看到的,当我只使用匿名会话时,我能够获得粉丝数,我猜这是公开的。有人对此有想法吗?

4

1 回答 1

0

您需要请求manage_pages许可,然后查询me/accounts图形对象以获取用户管理的页面列表(也称为帐户)。获得这些页面的列表后,您可以使用页面 ID 获取每个页面的信息。

于 2011-12-29T23:56:41.677 回答