1

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

4

2 回答 2

0

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

如果它是一个 URL,那是不可能的:facebook graph api 确定用户是否喜欢 url [stackoverflow]

它是内置的,就像您可以使用 cookie 来记住点击,或将点击保存在您自己的数据库中一样。

于 2012-08-23T16:00:11.817 回答
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。请记住,实际的错误代码没有记录在任何地方,因此它可能会改变,尽管我认为这不太可能。

于 2012-09-11T09:57:10.833 回答