2012-10-10 19 views
5

मैं अपने फेसबुक पेज पर कुछ टेस्ट वॉल पोस्ट पोस्ट करने के लिए फेसबुक एसडीके का उपयोग कर रहा हूं। मैं चाहता हूं कि PHP CRON स्क्रिप्ट का उपयोग करके हर 8 घंटे में मेरे फेसबुक पेज पर पोस्ट करना है और इसके लिए मुझे फेसबुक लॉगिन संवाद पृष्ठ को बाईपास करना है, तो क्या कोई भी कमांड लाइन या हवा से प्रमाणित करने का तरीका जानता है?लॉगिन संवाद पृष्ठ के बिना फेसबुक एसडीके प्रमाणीकृत कैसे करें?

उत्तर

2

Authenticating as a Page आपको एक एक्सेस टोकन देगा जो आप इसे अपने डेटाबेस में सहेज सकते हैं और फिर PHP का उपयोग करके विभिन्न कार्यों को निष्पादित कर सकते हैं।

यह क्रोन का उपयोग करके विभिन्न चीजों को करने में मददगार है, जैसे शेड्यूलिंग पोस्ट, एकाधिक पेज बनाए रखना, एक साथ कई पृष्ठों पर पोस्ट करना, Graph API का उपयोग करके फ़ोटो और अन्य गतिविधियों को अपलोड करना। इसे कैसे करें इसके बारे में अधिक जानकारी के लिए अपने दस्तावेज़ देखें।

नोट: आपको केवल एक बार अपने ऐप को प्रमाणित करना होगा और एक बार ऐसा करने के बाद, अपने पृष्ठ को टोकन कुंजी को सहेजना होगा, आपको फिर से लॉगिन करने की आवश्यकता नहीं है और आप अपने पेज पर विभिन्न कार्यों को करने के लिए बस अपने एक्सेस टोकन का उपयोग कर सकते हैं ।

+0

टोकन की समयसीमा समाप्त नहीं होगी? –

+0

हां, यह समाप्त हो जाएगा। लेकिन आप एपीआई कॉल करके टोकन का विस्तार कर सकते हैं और लंबे समय तक चलने वाले टोकन (60 दिन वैधता अधिकतम) प्राप्त कर सकते हैं, फिर आप इसे अपने डेटाबेस में सहेज सकते हैं। –

-1

नहीं, फेसबुक लॉगिन संवाद पृष्ठ को बाईपास करने का कोई तरीका नहीं है, हालांकि आपके मामले के लिए आप विस्तारित पहुंच कुंजी पुनर्प्राप्त कर सकते हैं और अपनी दीवार पर पोस्ट करने के लिए इसका उपयोग कर सकते हैं। आप पहुँच टोकन प्राप्त करने पीएचपी SDK का उपयोग करने के लिए निम्न कोड का उपयोग कर सकते

$extendedToken = $facebook->setExtendedAccessToken(); 
$facebook->api('<PAGE_ID>?fields=access_token'); 

इसके बाद अपने पेज पर पोस्ट करने के

$facebook->setAccessToken();

का उपयोग करें। विस्तारित पहुंच टोकन उत्पन्न करने से पहले अनुमति प्राप्त करना याद रखें।

2

फेसबुक फेसबुक ऐप का उपयोग करने के लिए उपयोगकर्ता के लिए एक्सेस टोकन प्रदान करता है। पहली बार, साइट पर लॉगिन करने के बाद, उपयोगकर्ता को फेसबुक लॉगिन के माध्यम से लॉगिन करना होगा, यह ऐप तक पहुंचने की अनुमति मांगेगा। उपयोगकर्ता स्वीकार करने के बाद फेसबुक आपको एक कोड थ्रोग यूआरएल वापस कर देगा। आप कोड लेने के लिए और

$url = "https://graph.facebook.com/oauth/access_token?client_id=". $yourappId ."&redirect_uri=". urlencode($this->redirect_url) ."&client_secret=". $youappsecret."&code=". $code; 
$auth_token = $this->getContents($url); 

$str = explode('=',$auth_token); 
$token = explode('&expires', $str[1]); 

यहाँ $ टोकन एक उपयोगकर्ता की पहुँच टोकन होगा निम्नलिखित कोड का उपयोग करके कि पहुंच टोकन प्राप्त करने

उपयोग करने के लिए, यू उर स्थानीय DB में है कि टोकन संगृहीत और कर सकते हैं फेसबुक दीवार पर एक संदेश पोस्ट करने के लिए उस टोकन का उपयोग करें। यह सरल है .. सब कुछ है।

एफबी वॉल पर एक संदेश पोस्ट करने के

$fb_id  = "User_fb_id" 
$access_token = "User_Access_Token_Take by Above code" 
$msg  = "Message_to_post" 
$img_path  = "Image_Path"  
$facebook = new Facebook(array(
'appId' => $this->appId, 
'secret' => $this->secret, 
'cookie' => true)); 
if($msg != NULL) { 
$attachment = array(
'message' => $msg, 
'name' => 'NHM',             
'picture' => $img_path); 
} 
try {$result = $facebook->api('/'. $fb_id . '/feed/', 
            'post', 
            $attachment); 

       if(isset($result['id'])) 
       return true; 
      else 
       return false; 
      } catch(FacebookApiException $e) { 
      return $e->getMessage(); 
     } 

यहाँ आप उपयोगकर्ता फेसबुक यूज़र आईडी किया है। उपयोगकर्ता आईडी प्राप्त करने के लिए निम्नलिखित कोड

$url = "https://graph.facebook.com/me?access_token=". $access_token; 
$userInfo = $this->getContents($url); 
$userInfo = json_decode($userInfo, true); 


public function getContents($url) { 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$content = curl_exec ($ch); 
curl_close ($ch); 
return $content; 
} 

इसका प्रयास करें। मुझे बताएं अगर कोई समस्या

+0

$ यह क्या है-> सामग्री प्राप्त करें मुझे फेसबुक एसडीके –

+0

में इस तरह का कोई तरीका नाम नहीं मिल रहा है मैंने फ़ंक्शन getContents जोड़ा। उसको याद करने के लिए खेद है। –

+0

फ़ंक्शन कॉल करने के बजाय, आप सीधे कोड डाल सकते हैं। –

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