Facebook喜欢按钮 - 是否经过检查?

时间:2012-08-22 19:54:26

标签: javascript facebook facebook-like

我无法找到有关如何使用javascript的好文档,以确定是否点击了类似按钮。我不能使用点击事件,因为当用户进入我的页面时可能已经检查了该按钮,但这似乎是关于外部跟踪喜欢的所有内容(不包括不再支持的其他方法)。有人有这方面的经验吗?感谢。

2 个答案:

答案 0 :(得分:0)

这取决于Like按钮。如果是具有ID的Facebook对象,您可以查询 like 表(但您需要 user_likes 权限)

如果是网址,则无法实现:facebook graph api determine if user likes url [stackoverflow]

对于built-in like来说,你可以使用cookie来记住点击,或者将点击保存在你自己的数据库中。

答案 1 :(得分:0)

只是为了扩展吉尔的答案。对于内置的喜欢,您可以使用由两个请求组成的批处理请求: 1)尝试喜欢有问题的对象 2)如果没有错误,请删除类似的连接

批处理示例:

[{"method":"POST", "relative_url":"me/og.likes", "body":"object=<SOME_URL>", "name":"like-attempt", "omit_response_on_success": false},
{"method":"DELETE", "relative_url":"{result=like-attempt:$.id}"}]

如果某个对象已被喜欢,则批量响应为:

[
    {
        "code": 400,
        "headers": [
            ...
            {
                "name": "WWW-Authenticate",
                "value": "OAuth \"Facebook Platform\" \"invalid_request\" \"(#3501) User is already associated to the object object on a unique action type Like. Original Action ID: 143539809123515\""
            }
        ],
        "body": "{\n \"error\": {\n \"message\": \"(#3501) User is already associated to the object object on a unique action type Like. Original Action ID: 143539809123515\",\n \"type\": \"OAuthException\",\n \"code\": 3501\n }\n}"
    },
    null
]

因此要检查对象是否被喜欢,JSON.parse第一个响应正文并查找错误代码为3501的错误。请记住,实际的错误代码没有记录在任何地方,因此可能会发生变化,尽管我认为不太可能。