2014-05-14 59 views
0

我從Facebook好友列表中檢索ID,姓名,用戶名;它與Facebook應用程序ID使用時工作正常「21484349 ......」,當我運行不同的Facebook應用程序ID這是給同一代碼:從Facebook好友列表中檢索用戶名屬性

com.facebook.android.FacebookError: (#100) Unknown fields: username.

以下是我的代碼

new AsyncTask<String, Void, String>() { 
    @Override 
    protected String doInBackground(String... params) { 
    Set<String> fields = new HashSet<String>(); 
    String[] requiredFields = new String[] { "id", "name", "username","installed" }; 
    fields.addAll(Arrays.asList(requiredFields)); 
Bundle parameters = new Bundle(); 
parameters.putString("fields", TextUtils.join(",", fields)); 
String jsonUser = null; 
try { 
jsonUser = mFacebook.request("me/friends", parameters,"GET"); 
} catch (MalformedURLException e) { 
e.printStackTrace(); 
} catch (IOException e) { 
e.printStackTrace(); 
} 

return jsonUser; 

} 
@Override 
protected void onPostExecute(String result) { 
if(result != null){ 
JSONObject obj; 
try { 
obj = Util.parseJson(result); 
Log.i("json Response", obj.toString()); 
JSONArray array = obj.optJSONArray("data");  
if (array != null) { 
for (int i = 0; i < array.length(); i++) {     
String name = array.getJSONObject(i).getString("name"); 
String id = array.getJSONObject(i).getString("id"); 
username = array.getJSONObject(i).getString("username"); 

} 
} 
}.execute(); 

運行此代碼時,它可以正常工作,但是當我更改應用程序標識時它不起作用。我在Facebook開發者中創建了應用程序並獲得了應用程序ID。

+0

有你(在可用字段列表username不)爲新的Facebook應用程序設置HashKey? –

回答

0

我想你是使用圖形API的v2.0與一個應用程序,和v1.0與其他(工作)之一。在這個版本中,場username不再可用,請參見:

/me/username is no longer available.

+0

感謝您的回覆先生,我希望您的正確,但現在如何從V2.0更改爲V1.0。 – Prasanthi

+0

這隻會幫助你,直到2015年4月30日。爲什麼你特別需要用戶名? – Tobi

+0

如果您的應用程序是在2014年4月30日之前創建的,則可以在網址中添加v1.0,並且您將針對v1.0進行請求。如果您的應用程序是在該日期之後創建的,則不能使用v1.0。 – WizKid

相關問題