2013-02-17 31 views
13

के माध्यम से समूह के सभी पदों को कैसे प्राप्त करें I फेसबुक समूह से सभी आईडी को इसके आईडी के संदर्भ में ले जाना चाहते हैं।फेसबुक ग्राफ एपीआई

https://graph.facebook.com/".$group_id."/feed?time_format=U&".$authToken 

जो केवल मुझे कुछ पदों देता है: मैं इस कोशिश की। यदि संभव हो तो सभी पदों को एक यूआरएल द्वारा पुनर्प्राप्त किया जाना चाहिए यदि पेजिंग यूआरएल द्वारा नहीं किया जाता है। लेकिन पेजिनेशन यूआरएल में पेजिंग टोकन

https://graph.facebook.com/55259308085/feed?limit=500&access_token=ACCESS_TOKEN&until=1298025645&__paging_token=55259308085_10150259582898086 

पेजिंग टोकन और कब तक है ??

कृपया मुझे सही रास्ते पर निर्देशित करें। धन्यवाद।

उत्तर

15
set_time_limit(99999999); 
ini_set('memory_limit', "9999M"); 

function fetchUrl($url) { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 40); 

    $data = curl_exec($ch); 
    curl_close($ch); 

    return $data; 
} 

$url_array = array(); 

function recurse_it($url, $c) { 
    global $url_array; 
    $feeds   = fetchUrl($url); 
    $feed_data_obj = json_decode($feeds, true); 
    if (!empty($feed_data_obj['data'])) { 
     $next_url  = $feed_data_obj['paging']['next']; 
     $url_array[$c] = $next_url; 
     recurse_it($next_url, $c + 1); 
    } 
    return $url_array; 
} 

$url = "https://graph.facebook.com/55259308085/groups?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 
$arr = recurse_it($url, 0); 
print_r($arr); 

कहाँ $arr सभी उपलब्ध पृष्ठांकन लिंक है जिसके लिए मैं पृष्ठांकन की सभी सामग्री के माध्यम से लूप करने के लिए एक foreach इस्तेमाल किया की एक सरणी है।
यदि आवश्यक हो तो मैं अधिक स्पष्टीकरण प्रदान कर सकता हूं। एक और आसान समाधान के लिए

+0

क्या आपको ओकेथ का उपयोग टोकन/ – weaveoftheride

+2

को पाइथन में उपरोक्त कोड पोस्ट करने का कोई मौका पाने के लिए करने की आवश्यकता है? वह महान होगा! – avi

9

PHP में इस प्रयास करें:

$response = file_get_contents("https://graph.facebook.com/$group_id/feed?limit=1000&access_token=$access_token"); 

यह आप 1000 पदों की एक सीमा के साथ एक पृष्ठ दे देंगे। एक PHP साहचर्य सरणी JSON उत्तर कन्वर्ट:

$array = json_decode($response, true); 
// Do your own stuff with $array ... 

अगले पृष्ठ के माध्यम से प्राप्त करें:

$response = file_get_contents($array['paging']['next']); 

तक $array['data'] जवाब में के रूप में खाली बाहर आता है, एक पाश में इस की कोशिश करो।


तक - यह एक UNIX समय समय में बिंदु है जिस तक पोस्ट (केवल उस के बाद दिखाई देगा किए गए पोस्ट) प्राप्त किया जा करने के लिए कर रहे हैं निर्दिष्ट करने के लिए प्रयोग किया जाता है पूर्णांक है।

+0

हाय नितेश THX ... लेकिन एक और तरीका खोज निकाला ive .. –

+0

@Nilesh: मुझे लगता है कि आप टाइप करने के लिए ** '' बजाय json_encode' की json_decode' ** चाहता था। :) – Sk8erPeter

+0

@ Sk8erPeter: मेरा बुरा। संपादन के लिए भी धन्यवाद। :) – Nilesh

1
$url_array=array(); 
    $url="https://graph.facebook.com/v2.2/".$fbpageid."/feed?access_token=".$access_token."&limit=250&fields=full_picture,picture,id,message,name,caption,description,updated_time,link,icon,from,privacy,type,status_type,application,object_id,story,story_tags,actions"; 

    function recurse_it($url,$c) 
    { 
     $feeds=file_get_contents($url); 
     $feed_data_obj=json_decode($feeds,true); 
     while(!empty($feed_data_obj['data'])) 
     { 
      $next_url  = $feed_data_obj['paging']['next']; 
      $url_array[$c] = $next_url; 
      $feeds=file_get_contents($next_url); 
      $feed_data_obj=json_decode($feeds,true); 
      $c=$c+1; 
     } 
     return $url_array; 
    } 
    $final_result=recurse_it($url,0);