如何限制只有Facebook应用程序访问我的朋友。 在这种情况下,通过“facebook connect”而不必使用“沙盒”
我知道它必须只允许他的朋友的身份,但从技术上来说它是怎么回事?
答案 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/