【问题标题】:facebook users who r not my friends but using the app不是我朋友但使用该应用程序的 Facebook 用户
【发布时间】:2014-10-03 20:51:01
【问题描述】:

新的 Facebook 图形 api 已将好友分为 FriendsInvitable_friends

me/friends/ 返回我正在使用该应用程序的朋友,而me/invitable_friends/ 仅返回我未使用该应用程序的朋友列表。

但在我的应用中,用户也可能与可能不在其好友列表中的随机用户进行交互。

那么我如何获取那些正在使用该应用但不在我的朋友列表中的用户数据。

谢谢。

【问题讨论】:

    标签: facebook facebook-javascript-sdk facebook-graph-api-v2.0


    【解决方案1】:

    我遇到了同样的问题并这样解决:默认情况下,当用户启动您的应用程序时,您会请求访问他的公共个人资料信息的权限,其中包括真实 ID、姓名和其他一些信息。您只需将用户数据(id、姓名等)存储在数据库中。通过这种方式,您可以跟踪所有使用您的应用的人,并且他们可以相互交流。

    JavaScript 示例:

    window.fbAsyncInit = function () {
        FB._https = true;
        console.log('here');
        FB.init({ appId: 'xxxxxxxxxxxxxxxx', cookie: true, xfbml: true, oauth: true, version : 'v2.0'});
        Login();
    };
    function Login() {
        FB.login(function(response) {
                if (response.authResponse){
                checkUser();
                } 
                else{
                    console.log('User cancelled login or did not fully authorize.');
                }
            }
        );
    }
    function checkUser() {
    FB.api('/me', function(response) {
        $.ajax({
            type: "get",
            url: "cgi-bin/checkUser.cgi",
            cache: false,
            data: {"user_name" : response.name, "u_id" : response.id, "link" : response.link},
            success: function() //onSuccess,
            { 
                console.log("user " + response.name + " checked!");
            },
            error: function()
            {
                console.log("Error with server connection on user checking");
            }
        }); 
    });
    }
    

    我不知道您使用哪种语言编写应用程序,但我相信在每种语言中您都应该调用“登录”功能,该功能会向用户询问权限并基本上可以访问信息。

    【讨论】:

    • 如果您的应用是在 v2.0 之前启动的,您仍然可以使用 v1.0,但此功能将很快被删除。检查我的答案上的编辑,此 JS 代码基本上将 AJAX 请求发送到带有用户信息的服务器脚本。
    • 您的方法不适合我的目的。在数据库中存储用户 FB 个人资料详细信息(如姓名、名字、图片等)没有任何意义,因为用户对其个人资料所做的任何更改都不会反映在 DB 中。我需要一个解决方案,我可以传递用户的全局 ID,绘制 api v2.0,他不是我的朋友,但收集他的详细信息,如姓名、图片等。无论如何,谢谢你的帮助 :)
    • 如果您的应用拥有用户的权限,您只需将他的 ID 传递给图形 api 并查看您有权访问的信息。通过将信息保存在数据库中,我并不是说保存他的全部信息,这可以通过 FB api 访问,我的意思是,如果您想跟踪使用您的应用程序的人,您可以简单地将他们的 ID 保存在数据库中。通过该 ID,您可以通过 api 访问您有权访问的所有内容。
    【解决方案2】:

    要获取正在使用该应用但不是您的朋友的用户的详细信息,请拨打以下电话

    graph.facebook.com/v2.0/

    ?ids={comma-separated-ids}&access_token=app_access_token&fields=name,picture

    access_token 是必须的,否则 graph-api 会返回以下错误-

    The global ID xyz is not allowed. Please use the application specific ID instead.

    这将适用于所有已验证应用程序的用户,无论其验证日期如何,但对于任何非应用程序用户,graph-api 都会返回上述错误消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      • 2014-06-26
      • 2012-04-17
      • 1970-01-01
      相关资源
      最近更新 更多