FQL“需要用户会话”错误

时间:2011-09-06 19:29:33

标签: facebook-fql facebook-php-sdk facebook-iframe

我的公司最近更新了我们的FaceBook应用程序,因此它使用Canvas Iframe和PHP 3.1.1 SDK。一切都很好,除了这一个不断发送错误的FQL查询:#102 - “需要用户会话”。

这甚至意味着什么?它不会发生在所有用户身上,也不是任何特定浏览器所独有的。还有其他人在询问这个问题,但是我找不到任何不到一年的解决方案,而不是“只让他们再次登录”。

这是FB错误数组和FB对象的副本(为了保护隐私,有一些事情已经出演了)

Array
(
    [error_code] => 102
    [error_msg] => Requires user session
    [request_args] => Array
    (
        [0] => Array
            (
                [key] => method
                [value] => fql.query
            )

        [1] => Array
            (
                [key] => query
                [value] => 
SELECT page_id
FROM page_admin
WHERE uid=me() AND page_id=####
LIMIT 1
            )

        [2] => Array
            (
                [key] => callback
                [value] => 
            )

        [3] => Array
            (
                [key] => api_key
                [value] => ###
            )

        [4] => Array
            (
                [key] => format
                [value] => json-strings
            )

        [5] => Array
            (
                [key] => access_token
                [value] => ###
            )

    )

)
Facebook Object
(
    [appId:protected] => ###
    [apiSecret:protected] => ###
    [user:protected] => 
    [signedRequest:protected] => Array
    (
        [algorithm] => HMAC-SHA256
        [issued_at] => 1315334757
        [page] => Array
            (
                [id] => ###
                [liked] => 
                [admin] => 
            )

        [user] => Array
            (
                [country] => us
                [locale] => en_US
                [age] => Array
                    (
                        [min] => 21
                    )

            )

    )

    [state:protected] => 
    [accessToken:protected] => ###
    [fileUploadSupport:protected] => 
)

当我们的开发团队找不到任何官方文档或解决方案时,让这个错误突然变得非常令人沮丧。

我确实从去年(Requires user session error while using FQL in facebook)找到了这篇文章,但它提供的解决方案与SDK 3.1.1不再相关。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:0)

目前的php SDK是3.1.1
https://github.com/facebook/php-sdk/

我建议更新并检查是否收到相同的错误消息,可能是因为与您使用的最新javascript SDK和较旧的php SDK不一致。

希望这会有所帮助

答案 1 :(得分:0)

如果您需要manage_pages权限,请检查 https://developers.facebook.com/docs/reference/fql/page_admin/

从2011年9月22日起,此类查询需要

希望这会有所帮助

答案 2 :(得分:0)

问题最终是这样:即使页面管理员被要求获得适当的权限,显示给应用程序的公众的页面也要求它。管理员授权应用程序和我们网站上的数据实际开始显示在他们的Facebook页面之间有一段延迟,并且每当Joe Public遇到应用程序时显示的页面会询问他们的权限和错误,当他们说号

修改应用的公开默认页面解决了这个问题。