【问题标题】:facebook graph api determine if user likes urlfacebook graph api判断用户是否喜欢url
【发布时间】:2011-05-18 08:19:36
【问题描述】:

如果用户当前登录到 facebook 并且喜欢当前页面,我想显示不同的消息。我明白了:

FB.Event.subscribe('edge.create', function(response) {
    // you like this
});

当用户喜欢页面时会触发,但是当您重新加载页面时,您如何确定他们已经喜欢当前页面?

谢谢!

【问题讨论】:

    标签: php javascript facebook facebook-graph-api


    【解决方案1】:

    我很确定你不能做你想做的事(在这种情况下)。

    看看这个页面:http://fbrell.com/fb.api/does-like

    您会看到您需要用户批准查看喜欢的权限。

    允许某人查看用户的“点赞”是一个巨大的安全风险——即使是当前页面。想想看,您可以轻松地欺骗当前页面并伪装成任何页面。

    但是...

    我建议您做的只是在用户“喜欢”您的页面时为您自己的利益(在 javascript 中)设置一个 cookie。假设您从该页面获得了很大比例的“赞”,那么您可以安全地将 cookie 的存在与“赞”相关联。

    我已经看到了一些这样做的安全异常,但它似乎有效(至少在 Chrome 中)。

    【讨论】:

      【解决方案2】:

      感觉您将该页面描述为“当前页面”,我知道它位于 iframe 标签中。如果是这种情况,签名请求会以$decode_signed_request = array('page' => array('liked' => true/false)) 的形式向您提供该信息。

      否则,您可以提供带有 GET 参数 fb_page_id 的画布页面,其中应包括参数 fb_sig_add 到服务器请求中,并带有 0/1,具体取决于用户是否是该页面的粉丝。 (这可能需要在您的迁移设置中禁用 OAuth 2.0)

      如果您谈论的是带有开放图形 url 的类似社交插件,您无法轻易确定用户是否是没有安装应用程序的粉丝。如果您确实有,您可以对/me/likes 进行 api 调用,这将返回用户拥有的所有喜欢的列表,并搜索您正在测试的对象的 id。

      【讨论】:

      • 这仅在应用程序设置为 facebook 页面选项卡时有效。并告诉当前用户是否喜欢这个 facebook 页面。
      • 我最初的假设是基于我第一句话中所述的。否则,您需要安装应用程序。您还可以在用户单击“赞”按钮时在后端会话中存储用户点赞的标志。
      【解决方案3】:

      使用 Graph API 会更安全,因为 Facebook 正在弃用他们的 REST API。因此,要获取用户是否喜欢您的页面,您将需要页面 ID 和应用的访问令牌。

      https://graph.facebook.com/me/likes/PAGE_ID?format=json&access_token=ACCESS_TOKEN

      • 其中 PAGE_ID 是您要检查的页面 ID。
      • ACCESS_TOKEN 是您的应用访问令牌。

      【讨论】:

        【解决方案4】:

        从 Graph API 中,您可以通过用户的 id 获取用户的喜好,例如:

        https://graph.facebook.com/ID/CONNECTION_TYPE

        因此,为了获得喜欢,您可以放置​​访问令牌,并且:

        https://graph.facebook.com/me/likes?access_token=2222222222222222

        然后查找您的页面是否喜欢。

        但是,您始终可以尝试我实际上没有尝试过的 FQL 查询。

        希望对你有所帮助。

        【讨论】:

        • 您需要 用户的 访问令牌。
        【解决方案5】:

        当用户喜欢链接时,将用户 ID 或第三方 ID 保存在数据库中

        获取third_party_id

        graph.facebook.com/me/?fields=third_party_id&access_token=xxx

        【讨论】:

          【解决方案6】:
          https://graph.facebook.com/{FB_USER_ID}?fields=likes.target_id(167584559969748)&access_token={VALID_ACCESS_TOKEN}
          

          如果该用户喜欢该 Facebook 粉丝页面,则显示数据。

          或

          https://graph.facebook.com/{FB_USER_ID}?fields=likes.fields(link)
          

          显示喜欢的链接列表,您可以从中获取您正在寻找的链接。

          所有这些都需要“user_likes”和/或friend_likes 权限。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-10-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多