5

मुझे पसंद से क्रमबद्ध एक एफबी उपयोगकर्ता की तस्वीरें प्राप्त करने की आवश्यकता है। मैं उन्हें पाने के लिए फेसबुक जावास्क्रिप्ट SDK के माध्यम से इस FQL क्वेरी भाग गया:बड़ी संख्या में फोटो के साथ फेसबुक उपयोगकर्ताओं के लिए फोटो की FQL क्वेरी

SELECT object_id, src_big, src_big_width, src_big_height, link, like_info, caption, created 
FROM photo 
WHERE owner = MANY_PICS_USER_ID ORDER BY like_info DESC LIMIT 10 

क्वेरी 3000 से अधिक तस्वीरों के साथ उपयोगकर्ताओं के लिए विफल रहता है। बाहर निकलता है उन उपयोगकर्ताओं में से बहुत सारे हैं। संबंधित फेसबुक बग एक नोट के रूप में यहाँ http://developers.facebook.com/bugs/438568326189781

है: को हटाने "like_info द्वारा आदेश" क्वेरी काम करता है, लेकिन वहाँ कोई आसान तरीका मुझे उन चित्रों, पसंद के अनुसार क्रमबद्ध पाने के लिए

पुन: पेश करने के लिए है:
पिक एपीआई ग्राफ एक्सप्लोरर में कम से कम 3000 फ़ोटो वाले एफबी दोस्त को अपना यूजर आईडी प्राप्त करें, और उपर्युक्त क्वेरी (MANY_PICS_USER_ID को प्रतिस्थापित करें) चलाएं।

सबसे अच्छा कामकाज क्या है? या, क्या आप सबसे आसान हल्के वजन वाले ओपन ग्राफ समाधान का सुझाव दे सकते हैं?

+2

यदि आप बहु क्वेरी का उपयोग करके ग्राफ एपीआई कॉल का उपयोग करते हैं तो क्या होता है? यह एक और अधिक बुनियादी उदाहरण है जिसका उपयोग आप करते हैं लेकिन उपयोगकर्ता आईडी? फ़ील्ड = फोटो.फील्ड (पसंद) .limit (10) – TommyBs

+0

मैं ग्राफ एपीआई के माध्यम से परिणाम प्राप्त करूंगा जैसे टॉमीबीएस ने सुझाव दिया कि फिर एक ऐसा फ़ंक्शन लिखें प्रति फोटो पसंद है। –

+0

अच्छा बिंदु @ एनावाइटल, और शायद 3000+ चित्रों को प्राप्त करने के लिए यातायात और मेमोरी के बहुत बड़े हिस्से की आवश्यकता होगी। –

उत्तर

2

आप निम्नलिखित की जरूरत है पसंद से फ़ोटो सॉर्ट करने के लिए:

जो निम्न डेटा संरचना लौटाता है:

"data": [ 
{ 
    "id": "1234567890", 
    "source": "http://photo.url.in.facebook.cdn.com/", 
    "created_time": "2012-09-13T22:52:34+0000", 
    "likes": { 
    "data": [ 
     { 
     "id": "1234567890", 
     "name": "Full Name" 
     }, 
     ..... 
    "paging": { 
     "next": "https://graph.facebook.com/1234567890/likes?limit=25&offset=25" 
    } 
    } 
}, 
{ 
    "id": "312323232323", 
    "source": "PICTURE_URL", 
    "created_time": "2012-09-12T20:54:27+0000", 
    "likes": { 
    "data": [..] 
    } 
}, 
.... 
"paging": { 
    "previous": "http://PREVIOUS_URL?fields=id,source,name,height,width,link,likes&limit=100&since=123456", 
    "next": "http://NEXT_URL?fields=id,source,name,height,width,link,likes&limit=100&until=234567" 
} 
  • चित्रों की कुल संख्या जब तक चित्रों की संख्या से कम 100

  • हर के लिए आप चित्र हो जाएगा "अगला" लिंक से 100 से अधिक, सभी अगले क्वेरी चला, है पसंद की कुल संख्या गिनने की जरूरत है। यदि पसंद की संख्या 25 से अधिक है, तो likes.paging.next से अतिरिक्त क्वेरी चलाएं, जब तक कि पसंद की संख्या < 25 न हो और कुल मात्रा प्राप्त करें।

  • उन सभी तस्वीरों को पसंद की संख्या से सॉर्ट करें।

तो 3000 चित्रों वाले उपयोगकर्ता के लिए यह कुल 30 कॉल + 25 से अधिक पसंद वाले प्रत्येक चित्र के लिए अतिरिक्त कॉल में होगा।

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