仅限我的朋友访问应用程序facebook

时间:2011-03-28 03:08:13

标签: facebook

如何限制只有Facebook应用程序访问我的朋友。 在这种情况下,通过“facebook connect”而不必使用“沙盒”

我知道它必须只允许他的朋友的身份,但从技术上来说它是怎么回事?

1 个答案:

答案 0 :(得分:0)

您可以使用您的用户访问令牌(而不是应用令牌)查询https://graph.facebook.com/me/friends来获取好友列表。 Facebook将返回您朋友的JSON数组。您可以在这里阅读更多信息: http://developers.facebook.com/docs/reference/api/

然后,您可以遍历JSON数组并在服务器中存储列表,例如在java中:

try {
    JSONObject response = new JSONObject(txtResponse);
    ArrayList<String> myFriends = new ArrayList<String>();
    for (int i=0; i<response.data.length; i++) {
        myfriends.add (response.data[i].id);
    }
    // store the list somewhere
} catch (JSONException e) {
    // something went wrong. 
}

在您的客户端,您可以在javascript中获取用户ID。我在jquery中编写ajax调用只是为了简短。你可以使用普通的javascript。

if(FB.getSession() != null) {
    var session = FB.getSession();
    if (session.uid===undefined)
       session = session.session;
    $.post("login", {id:session.uid}, function (response) {
        // you do here whatever you want based on the server decision to allow access or not.
    });
}

当然,会有一个servlet响应ajax帖子,它会将id与myFriends列表中的id进行比较。

PS1:我在脑海中写下了这个,所以可能会出现错别字/错误,但你明白了。

PS2:您也可以使用fql代替图形api。更多信息: http://developers.facebook.com/docs/reference/fql/