2011-02-02 14 views
14

मैं दो लोगों के लिए एक दोस्ती विस्तार कैसे मिल सकता है? तो उदाहरण के लिए वेब पर यह होगा:मैं फेसबुक ग्राफ एपीआई में दोस्ती विवरण कैसे प्राप्त कर सकता हूं?

http://www.facebook.com/<my_id>?and=<friend_id> 

क्या कोई तरीका है कि मैं इसे ग्राफ एपीआई में कर सकता हूं? इसके अलावा मैं विशिष्ट वस्तुओं जैसे फोटो एक साथ, हमारे बीच दीवार पोस्ट आदि प्राप्त कर सकता हूं? (AFAIK दस्तावेज नहीं है, लेकिन कई ग्राफ़ एपीआई सुविधाओं वैसे भी नहीं कर रहे हैं ...)

संपादित करें: मुझे लगता है यह ग्राफ़ एपीआई के साथ संभव होना चाहिए। उदाहरण के लिए पारिवारिक विवरण प्राप्त करना (भाई, बहन, माता-पिता, आदि) दस्तावेज नहीं है फिर भी मैं इसे करने में सक्षम हूं।

+0

मैं ग्राफ एपीआई से अधिक तलाश रहे हैं, और पर मौजूद सारे दस्तावेज़ में दोस्ती पृष्ठ पर कुछ भी नहीं मिला। की [इस सवाल] संभावित डुप्लिकेट [1] [1]: http://stackoverflow.com/questions/4865903/can-you-view-a-friendship-relationships-data- आप-और-एक-दोस्त-पृष्ठ-के-टी – Nemo

+0

हां, यह वास्तव में उस तरह के एक समान प्रश्न की तरह दिखता है। हम कैसे तय कर सकते हैं कि किसको बंद करना है? क्या हम विलय कर सकते हैं? –

+0

आप सही हैं, डुप्लिकेट। मैंने इस मामले में अपना प्रश्न विलय करने के लिए वोट दिया। (वास्तव में होने के लिए अधिक वोटों की आवश्यकता है।) – bantic

उत्तर

6

आप एक से अधिक FQL प्रश्नों करके एक दोस्ती क्वेरी अनुकरण कर सकते हैं। उदाहरण के लिए, दो दोस्तों ए और बी के बीच सभी तस्वीरें प्राप्त करने के लिए, आप:

  1. एक
  2. की सभी फ़ोटो (पी) (photo_tags मेज पर क्वेरी) पी में बी के सभी टैग जाओ जाओ
  3. (टिप्पणी मेज पर क्वेरी)

दोहराएँ पी पर बी द्वारा किए गए सभी टिप्पणियों जाओ, इस बार बी

से फ़ोटो का चयन करते

आप इसी अवधारणा इस तरह के पदों, पसंद के रूप में अन्य बातों पर आवेदन कर सकते हैं , वीडियो आदि

+0

क्या ऐसा करने के लिए कोई गैर-एफक्यूएल तरीका है? –

3

हाँ, मुझे लगता है कि आप भी एक ही बात phillee FQL के बजाय ग्राफ़ API से जवाब कर सकते हैं: सूची के माध्यम से

  1. प्राप्त उपयोगकर्ता की फ़ोटो https://graph.facebook.com/USERID/photos
  2. प्रत्येक तस्वीर के टैग जाओ https://graph.facebook.com/PHOTOID/tags
  3. क्रमबद्ध फोटो टैग के, और उनमें से मित्र के साथ सभी तस्वीरें पकड़ें
  4. प्रत्येक फोटो की टिप्पणियां प्राप्त करें https://graph.facebook.com/PHOTOID/comments
  5. के माध्यम से क्रमबद्ध करें तस्वीर टिप्पणियों की सूची, और सभी टिप्पणियों दोस्त
  6. द्वारा छोड़ा अन्य जवाब के रूप में यह भी कहा हड़पने: कुल्ला और सभी डेटा के लिए दोहराएँ आप चाहते हैं
    1. https://graph.facebook.com/USERID/feed
    2. https://graph.facebook.com/USERID/posts
    3. आदि आदि, सभी कनेक्शनों को देखने के यहाँ: http://developers.facebook.com/docs/reference/api/user/

हितों, सिनेमा, गतिविधियों के लिए, आदि बस दोनों के लिए एक API कॉल करने (012,और https://graph.facebook.com/OTHERUSER/music) और दो डेटा के प्रत्येक सूची के माध्यम से पाश सेट (के चौराहे खोजने के लिए और आपसी पसंद की एक अलग सूची)

हालांकि दोस्ती के लिए कोई विशेष API कॉल कर रहे हैं करने के लिए सभी मैचों बचाने के लिए, ताकि आप होगा अपना खुद का निर्माण करना है। मेरा अनुमान है कि फेसबुक उनके मैत्री पृष्ठों :)

यह बस के रूप में बाकी एपीआई के साथ के रूप में FQL साथ आसान होना चाहिए पर वास्तव में यह कर रहा है ...शायद एफक्यूएल के साथ भी आसान हो सकता है क्योंकि आप एपीआई द्वारा लौटाई गई बड़ी सूची (जब तक एपीआई अनुरोध यूआरएल में शर्तों को जोड़ने का कोई तरीका नहीं है) के बजाय आपको जहां भी आवश्यकता हो, डेटा (SELECT * FROM comments WHERE fromid = FRIENDID) की आवश्यकता हो सकती है।

+0

ग्राफ़ एपीआई के साथ आप प्रत्येक ऑब्जेक्ट के लिए टैग और टिप्पणियों पर एक अलग क्वेरी कर रहे होंगे, जो निषिद्ध रूप से महंगा हो सकता है। एफक्यूएल के साथ आप एक सबक्वायरी का उपयोग कर सकते हैं ताकि आप एक प्रकार की क्वेरी प्रति प्रकार की वस्तु को चला सकें। – phillee

+0

हाँ, आप शायद सही हैं, मैं इसे FQL – thaddeusmt

0

अगर मैं ठीक से समझ आप क्वेरी के इस प्रकार के (इस समय) ग्राफ़ एपीआई का उपयोग संभव सीधे नहीं है "मैत्री देखें"

करना चाहते हैं। आप

0

यह मैं क्या उपयोग किया गया है है प्रत्येक संसाधन endpoint से जानकारी इकट्ठा करने और उसके बाद के लिए "दृश्य मैत्री" कुछ अपनी खुद की ओर से संबंधित कर की आवश्यकता होगी:

<?php 
function main() 
{ 
    global $Fb; 
    $Fb = new Facebook(array('appId'=>FB_API_ID,'secret'=>FB_API_SECRET)); 
    $logoutUrl = $Fb->getLogoutUrl(); 
    $loginUrl = $Fb->getLoginUrl(); 
    $user = fb_loguser($Fb); 
    if ($user) 
    { 
     $txt .= "<p align=\"center\"><a href=\"" . $logoutUrl . "\">Logout</a></p>"; 
     $txt .= "<h3 align=\"center\">You</h3>"; 
     $access_token = $Fb->getAccessToken(); 
     $user_profile = $Fb->api('/me'); 
     $txt .= "<p align=\"center\"> 
      <img src=\"https://graph.facebook.com/".$user."/picture\"></p>"; 
     $txt .= fb_friends_list($user_profile,$access_token); 
    } 
} 
function fb_loguser($facebook) 
{ 
    global $Fb; 
    $Fb = $facebook; 
    $user = $Fb->getUser(); 
    if ($user) 
    { 
     try 
      $user_profile = $Fb->api('/me'); 
     catch (FacebookApiException $e) 
     { 
      error_log($e); 
      $user = null; 
     } 
    } 
    return($user); 
} 
function fb_friends_list($access_token) 
{ 
    global $Sess,$Fb; 
    $friends = $Fb->api('/me/friends'); // return an array [data][0 to n][name]/[id] 
    $siz = sizeof($friends['data']); 
    $txt = "<h3>Your FRIENDS on FACEBOOK</h3>"; 
    $txt .= "<table>"; 
    for ($i=0; $i<$siz; $i++) 
    { 
     $fid = $friends['data'][$i]['id']; 
     $src = "http://graph.facebook.com/".$fid."/picture"; 
     $txt .= "<tr><td><img src=\"".$src."\" /></td>"; 
     $txt .= "<td>".$friends['data'][$i]['name'] . "</td>"; 
     $txt .= "<td>" . $fid . "</td></tr>"; 
    } 
    $txt .= "</table>"; 
    return($txt); 
} 
?> 

कॉल main()!

+0

के साथ करूँगा यहां एक नोट: यह सिर्फ आपके सभी दोस्तों को सूचीबद्ध करता है। :-) – Bondt

0

तस्वीरें जहां दो (या अधिक) उन में टैग किया गया हो रही है:

SELECT pid, src_big FROM photo 
    WHERE pid IN(
      SELECT pid FROM photo_tag WHERE subject=me()) 
     AND pid IN(
      SELECT pid FROM photo_tag WHERE subject=FRIEND_ID) 
     AND pid IN(
      SELECT pid FROM photo_tag WHERE subject=ANOTHER_FRIEND_ID) 
     ... 
संबंधित मुद्दे