2011-03-28 36 views
0

如何限制只有Facebook應用程序訪問我的朋友。 在這種情況下通過「臉譜網連接」,而不必使用「沙箱」限制只有我朋友的應用程序facebbok

我知道它必須只允許他的朋友的身份證,但技術上它是如何去?

回答

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中獲取用戶標識。我在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/

+0

嗨Aleadam。你能爲我做這個嗎?如果es爲多少? – kiamaru 2011-03-28 20:47:56

+0

對不起,錯的傢伙。我只是一個業餘編碼器,所以我不敢爲此付費。包括我自己在內的許多人會樂意幫助你做到這一點,如果你喜歡。此外,請考慮將問題標記爲已回答或刪除,如果您只想聘用某人。 – Aleadam 2011-03-29 04:04:46

相關問題