2011-03-05 12 views
10

मैं अपनी खुद की एप्लिकेशन दीवार पर एक स्क्रिप्ट के साथ एक पाठ पोस्ट करना चाहता हूं लेकिन बिना लॉगिन के पहले क्योंकि इसे स्वचालित रूप से किया जाना चाहिए। ऐसा कैसे किया जा सकता था? मैंने पहले से ही कोशिश की:फेसबुक एपीआई: लॉगिन के बिना अपनी आवेदन दीवार पर पोस्ट करने के लिए कैसे पोस्ट करें

$fb = new Facebook(array(
    'appId' => 'appid', 
    'secret' => 'appsecret', 
    'cookie' => true 
)); 


if ($fb->getSession()) { 
    // Post 
} else { 
    // Logger 
    // Every time I get in here :(
} 

मुझे अपनी खुद की ऐप दीवार पर एक स्क्रिप्ट के साथ पोस्ट करने के लिए उपयोग करने के लिए क्या करना है?

+0

एफबी में लॉग इन किए बिना मुझे नहीं लगता कि आप इसकी किसी भी कार्यक्षमता तक पहुंच सकते हैं। –

+0

ठीक है और फिर मैं एप्लिकेशन दीवार पर कैसे पोस्ट कर सकता हूं? – Poru

उत्तर

13

यदि आप अपनी खुद की एप्लिकेशन दीवार पर पोस्ट करना चाहते हैं, तो आपको केवल एक एप्लिकेशन एक्सेस टोकन की आवश्यकता है, और यदि आप लॉगिन के बिना किसी उपयोगकर्ता की दीवार पर प्रकाशित करना चाहते हैं, तो आपको इस उपयोगकर्ता को लंबे समय तक लाइव टोकन की भी आवश्यकता है, इसके लिए आप ऑफ़लाइन पहुंच अनुमति के लिए पूछना है।

आपके आवेदन दीवार को प्रकाशित करने के लिए:

1- कर्ल अपने आवेदन पहुंच टोकन प्राप्त करने के लिए इस लिंक:

https://graph.facebook.com/oauth/access_token? client_id = YOUR_APP_ID & client_secret = YOUR_APP_SECRET & grant_type = client_credentials

2- सत्र के लिए जाँच के बिना दीवार पर प्रकाशित

उदाहरण:

<?php 
require_once 'facebook.php' 

//Function to Get Access Token 
function get_app_token($appid, $appsecret) 
{ 
$args = array(
'grant_type' => 'client_credentials', 
'client_id' => $appid, 
'client_secret' => $appsecret 
); 

$ch = curl_init(); 
$url = 'https://graph.facebook.com/oauth/access_token'; 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $args); 
$data = curl_exec($ch); 

return json_encode($data); 
} 

// Create FB Object Instance 
$facebook = new Facebook(array(
    'appId' => $appid, 
    'secret' => $appsecret, 
    'cookie' => false, 
    )); 


//Get App Token 
$token = get_app_token($appid, $appsecret); 

//Try to Publish on wall or catch the Facebook exception 
try { 
$attachment = array('message' => '', 
      'access_token' => $token, 
        'name' => 'Attachment Name', 
        'caption' => 'Attachment Caption', 
        'link' => 'http://apps.facebook.com/xxxxxx/', 
        'description' => 'Description .....', 
        'picture' => 'http://www.google.com/logo.jpg', 
        'actions' => array(array('name' => 'Action Text', 
             'link' => 'http://apps.facebook.com/xxxxxx/')) 
        ); 

$result = $facebook->api('/'.$appid.'/feed/', 'post', $attachment); 
} 

//If the post is not published, print error details 
catch (FacebookApiException $e) { 
echo '<pre>'; 
print_r($e); 
echo '</pre>'; 
} 

अधिक जानकारियां के लिए इस पृष्ठ में चेक एपीपी प्रवेश हिस्सा : http://developers.facebook.com/docs/authentication/

+0

मैंने इसे लागू करने का प्रयास किया लेकिन यह "असमर्थित पोस्ट अनुरोध" कहता है, क्या आपको कोई विचार है? –

+0

यह अब काम नहीं करता है। वर्तमान एपीआई में 'एपीआई' विधि नहीं है, बल्कि इसके बजाय 'पोस्ट' है। – ProfK

3

मैं इसे एक के रूप में नहीं छोड़ सकता टिप्पणी करें क्योंकि मेरे पास अंक नहीं हैं, लेकिन अगर किसी के पास एक समान समस्या है - यदि मैकशर्क का जवाब काम नहीं करता है, तो json_encode को इसके एन्कोडिंग उद्धरण चिह्न के रूप में हटा दें और इसे काम करना चाहिए।

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