2011-01-10 15 views
10

Possible Duplicate:
How to get friend's birthday list using facebook api?एंड्रॉइड में फेसबुक एपीआई से सभी दोस्तों का नाम, आईडी, जन्मदिन, स्थान इत्यादि कैसे प्राप्त करें?

मैं उस सूची को प्रदर्शित करना चाहता हूं जिसमें एंड्रॉइड एप्लिकेशन में फेसबुक से नाम, आईडी, जन्मदिन, स्थान जैसी जानकारी शामिल है।

हालांकि निम्नलिखित कोड मैं मित्र का नाम और आईडी

  Bundle parameters = new Bundle(); 
    mAccessToken = facebook.getAccessToken(); 

    try { 

     parameters.putString("format", "json"); 
     parameters.putString(TOKEN, mAccessToken); 

     String url = "https://graph.facebook.com/me/friends"; 
     String response = Util.openUrl(url, "GET", parameters); 
     JSONObject obj = Util.parseJson(response); 

     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"); 

       Log.i(name,id); 
      } 
     } 

       ............ 
       ............ 

मिलता है लेकिन json जवाब में खेतों जन्मदिन, स्थान, आदि नहीं मिल रहा काम करने में सफल हरा कर रहा हूँ। गलती क्या है?

+0

हाय के लिए अनुमति है सुनिश्चित करें! मैंने फेसबुक उपयोगकर्ता की मित्र सूची से पुनर्प्राप्त करने के लिए अपना कोड उपयोग किया है, लेकिन मुझे निम्न त्रुटि मिलती है- com.facebook.android.FacebookError: वर्तमान उपयोगकर्ता के बारे में जानकारी पूछने के लिए एक सक्रिय एक्सेस टोकन का उपयोग किया जाना चाहिए। क्या आप कृपया मुझे ठीक करने में मदद कर सकते हैं इस! – adrian

+0

क्या आप कृपया मेरी मदद कर सकते हैं! – adrian

+1

"https://graph.facebook.com/[id]" केवल आईडी और उपयोगकर्ता के नाम देता है। अन्य तरीकों का प्रयास करें, फेसबुक प्रलेखन पर खोजें (अनुशंसित नहीं) या इसे Google पर करें। :) पीएसमैंने ऐसा करने के लिए बहुत कुछ किया है ... मैं यहां कोड नहीं लिख सकता ... –

उत्तर

5

फेसबुक एपीआई saysFriendList में प्रत्येक मित्र के लिए केवल id और name शामिल है।

मैं फेसबुक एपीआई का उपयोग नहीं किया है, लेकिन मुझे लगता है कि आप तो प्रत्येक उपयोगकर्ता के लिए https://graph.facebook.com/[id] क्वेरी करने के लिए, उनके आईडी के रूप में उपयुक्त डालने, सभी उपलब्ध जानकारी वापस जाने के लिए और उसके बाद अलग से प्रत्येक उपयोगकर्ता के JSON प्रतिक्रिया को पार्स (की आवश्यकता होगी their docs विशेष रूप से स्पष्ट नहीं हैं)।

+0

हाय धन्यवाद। उपरोक्त यूआरएल का उपयोग करके अलविदा मुझे दोस्तों के विवरण के लिए जेसन प्रतिक्रिया मिलती है जो हवेली का पहला नाम, अंतिम नाम, पता लगाने और लिंक हैं। लेकिन पता और जन्मतिथि – milind

+0

प्राप्त करने में असमर्थ यह फेसबुक की गोपनीयता नीति के कारण हो सकता है। कुछ लोग ऐसी जानकारी देने का विकल्प नहीं चुनते हैं, या इसे केवल कुछ फेसबुक ऐप्स के लिए उपलब्ध कराते हैं। – Dave

6

जब मैं अपने दोस्तों की एक सूची प्राप्त है, और सिर्फ अपना नाम और वेबसाइट पर फिल्टर करने के लिए चाहता था, यह मेरे लिए काम किया: https://graph.facebook.com/me/friends?fields=name,website&access_token=someCrazyLongRandomlyGeneratedString

लगता है जैसे आप कर रही किया जाना चाहिए, और तुम सिर्फ 'नाम की जगह लेंगे, वेबसाइट 'नाम', आईडी, जन्मदिन, स्थान 'या जो भी आप उपयोगकर्ता ऑब्जेक्ट में निहित फ़ील्ड की सूची से प्रतिक्रिया में प्राप्त करना चाहते हैं: http://developers.facebook.com/docs/reference/api/user/। मेरा मानना ​​है कि आईडी स्वचालित रूप से प्रतिक्रिया के साथ शामिल है, इसलिए आपको इसे वास्तव में अनुरोध में शामिल करने की आवश्यकता नहीं है।

+0

अरे क्या आप मुझे डेमो दे सकते हैं? –

+0

यह स्वीकार्य उत्तर होना चाहिए। – nhaarman

9

आप FQL भाषा का प्रयोग बहुत जल्दी सभी जानकारी प्राप्त करना चाहते हैं:

$this->api->api(array('method'=>'fql.query','query'=>"SELECT uid,name,first_name,middle_name,last_name,pic_square,hometown_location,current_location,profile_url,email,website FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())")); 

मैं का उल्लेख उनकी संगत स्तंभ नाम के साथ सभी तालिकाओं की सूची के लिए: नाम प्राप्त कर रहा है Facebook FQL Reference

1

, आईडी , जन्मदिन और उपयोगकर्ता के मित्रों के स्थान इस FQL कॉल के साथ किया जा सकता है:

SELECT uid,name, birthday_date, hometown_location 
FROM user 
WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) 

एंड्रॉयड पर, फेसबुक Android SDK का उपयोग कर, यह कर सकते हैं

String query = "SELECT uid,name,birthday_date, hometown_location FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) (SELECT uid2 FROM friend WHERE uid1=me())" 
Bundle params = new Bundle(); 
params.putString("method", "fql.query"); 
params.putString("query", query); 
mAsyncFacebookRunner.request(null, params, new FQLRequestListener()) 

जहां FQLRequestListener फैली RequestListener: रूप में लागू किया।

आप इन अनुमतियों की जरूरत है:

friends_birthday 
friends_hometown 
0

आपका पहले से ही के करीब है, इस यूआरएल में, का उपयोग आप friends_birthday और friends_location

String url = "https://graph.facebook.com/me/friends?fields=id,name,birthday,location"; 
संबंधित मुद्दे