2012-12-21 22 views
6

का उपयोग कर फेसबुक कैलेंडर से दोस्तों की जन्मतिथि कैसे प्राप्त करें मैं आवेदन पर काम कर रहा हूं जिसके लिए सभी दोस्तों की जन्म तिथि की आवश्यकता है। क्या कुछ बॉडी शेयर कोड ग्राफ़ एपीआई का उपयोग करके सभी दोस्तों की जन्मतिथि कैसे प्राप्त कर सकते हैं। मैं कोड निम्न का उपयोग कर रहा:एंड्रॉइड: ग्राफ़ एपीआई

// start Facebook Login 
    Session.openActiveSession(this, true, new Session.StatusCallback() { 

     // callback when session changes state 
     @Override 
     public void call(Session session, SessionState state, Exception exception) { 
     if (session.isOpened()) { 

      // make request to the 
      Request.executeMyFriendsRequestAsync(session, new Request.GraphUserListCallback() { 

       @Override 
       public void onCompleted(List<GraphUser> users, Response response) { 
        //Log.d("AL",""+users.size() + response.toString()); 
        for (int i=0;i<users.size();i++){ 
         Log.d("AL",""+users.get(i).toString()); 
         welcome.setText("Done"); 
        } 

       } 
      }); 
     } 
     } 
    }); 

और यह केवल दोस्तों के नाम और आईडी में केवल लौटा रहा है। दोस्तों को जन्मदिन पाने के लिए मुझे अनुमतियां कहां सेट करनी होंगी? मैं फेसबुक एसडीके में नया हूँ। और एसडीके v3 का उपयोग कर।

ग्राफ एपीआई लौटने निम्नलिखित json परिणाम

{Response: responseCode: 200, graphObject: GraphObject{graphObjectClass=GraphObject, state={"data":[{"id":"1580811776","name":"Jamal Abdul Nasir"},{"id":"1610349118","name":"Ahmed Nawaz"}],"paging":{"next":"https:\/\/graph.facebook.com\/100004790803061\/friends?format=json&access_token=AAABtTr8g5U4BANiJdCiBFxQeg0l1eqYYzmSWVM8G1UlyAhTtUrAsoEZAgU19dECXTE2nw7pHIz8bDb7OJGM4wAwzusOVZAQN8yaiYVsQZDZD&limit=5000&offset=5000&__after_id=1610349118"}}}, error: null, isFromCache:false} 

जो जन्मदिन भी नहीं है।

+0

ग्राफ एपीआई एक जेसन परिणाम देता है। जेसन से डेटा कैसे प्राप्त करें देखें। – SnareChops

+0

हम्म ... मुझे यकीन नहीं है। [प्रलेखन] (https://developers.facebook.com/docs/reference/api/) – SnareChops

+0

ग्राफ़ एपीआई एक्सप्लोरर में मुझे देखने का प्रयास करें। https://developers.facebook.com/tools/explorer 514418319? फ़ील्ड = दोस्तों। फ़ील्ड (नाम, जन्मदिन, आईडी) कोई भी बॉडी मुझे बता सकता है कि ग्राफ एपीआई अनुरोध के ऊपर कोड कैसे करें ?? –

उत्तर

13

पहले यदि प्रमाणीकृत, उसे अपने मित्रों और जन्मदिन से जानकारी प्राप्त होगी अपने कॉलबैक, निर्धारित करें:

Session.StatusCallback statusCallback = new Session.StatusCallback() { 

    // callback when session changes state 
    @Override 
    public void call(Session session, SessionState state, Exception exception) { 
    if (session.isOpened()) { 
     // Private method, to be defined 
     makeFriendsRequest(); 
    } 
    } 

}; 

उसके बाद, आप सत्र खोलने के लिए और आवश्यक हो, "friends_birthday" अनुमति अनुरोध में पारित कर सकते हैं:

private void makeFriendsRequest() { 
    Request myFriendsRequest = Request.newMyFriendsRequest(Session.getActiveSession(), 
      new Request.GraphUserListCallback() { 

     @Override 
     public void onCompleted(List<GraphUser> users, Response response) { 
      if (response.getError() == null) { 
       // Handle response 
      } 

     } 

    }); 
    // Add birthday to the list of info to get. 
    Bundle requestParams = myFriendsRequest.getParameters(); 
    requestParams.putString("fields", "name,birthday"); 
    myFriendsRequest.setParameters(requestParams); 
    myFriendsRequest.executeAsync(); 
} 
012:
Session session = new Session(this); 
session.openForRead(new Session.OpenRequest(this) 
         .setCallback(statusCallback) 
         .setPermissions(Arrays.asList("friends_birthday"))); 

अंत में, यहाँ के बाद प्रमाणीकरण विधि आप जन्मदिन सहित, दोस्तों की जानकारी प्राप्त करने के लिए उपयोग कर सकते हैं

यदि आप फेसबुक लॉगिन को लागू कर सकते हैं तो विभिन्न तरीकों की तलाश कर रहे हैं, तो एसडीके के साथ बंडल किए गए सत्र लॉजिक नमूना ऐप को भी देखें।

+0

यह मत भूलना कि अगर आप अपने सत्र की स्थिति को सही तरीके से बनाए रखना चाहते हैं, तो दो चीजों को न भूलें: ** 1। ** 'सत्र .setActive सत्र (सत्र) जोड़ें;' सत्र सत्र = नया सत्र (FindFriendsActivity.this) के बाद ; 'लाइन और ** 2। ** इस तरह की कुछ चीज़ों के साथ गतिविधि की 'एक्टिविटी रिसर्च()' ओवरराइड करें: '@ ओवरराइड सार्वजनिक शून्य पर सक्रियता (int requestCode, int resultCode, इरादा डेटा) { super.onActivityResult (requestCode, resultCode, डेटा); सत्र सत्र = सत्र।getActiveSession(); यदि (सत्र! = शून्य) { session.onActivityResult (यह, अनुरोध कोड, परिणाम कोड, डेटा); } } ' –

0

मैं इस का उपयोग कर की कोशिश लगता है:

URL url = "http://YOUR_QUERY_URL_WITH_PARAMS"; 
InputStream is = null; 
URLConnection connection = url.openConnection(); 
String line; 
StringBuilder builder = new StringBuilder(); 
BufferedReader reader = new BufferedReader(new InputStreamReader(      connection.getInputStream())); 
while ((line = reader.readLine()) != null) 
{ 
    builder.append(line); 
} 
String jSONString = builder.toString(); 
JSONObject jSONObject = new JSONObject(jSONString); 

तब प्राप्त डेटा लेने के लिए और यह प्रदर्शित करते हैं।

नोट: मैं इस कोड का परीक्षण नहीं किया, अब और पर परीक्षण करने के लिए Android डिवाइस की जरूरत नहीं है, लेकिन आप सही दिशा में इशारा किया मिलना चाहिए।

+0

@ahmedNawaz क्या आप अपनी टिप्पणी में कोड पोस्ट करना चाहते थे? यदि ऐसा है और यदि और भी है तो केवल एक पंक्ति या दो आप इसे संपादित करके एक टिप्पणी लिखकर इसे अपने प्रश्न में जोड़ सकते हैं और मुझे इसे देखने के लिए कह रहे हैं। – SnareChops

संबंधित मुद्दे