2010-01-15 33 views
5

के माध्यम से फेसबुक ईवेंट बनाना क्रॉन-जॉब के माध्यम से फेसबुक ईवेंट बनाने की कोशिश कर रहा हूं। कार्यक्रमों को मेरी फेसबुक-कनेक्ट-साइट के उपयोगकर्ताओं की तरफ से बनाया जाना चाहिए, जिन्होंने ऑफ़लाइन पहुंच प्रदान की है। मेरे पास session_keys हैं जो समाप्त नहीं होती हैं, लेकिन इसे काम नहीं कर सकती!क्रॉन-जॉब

कोई है "संदेश 'अमान्य' पैरामीटर के साथ अपवाद 'FacebookRestClientException'": मेरे ऐप की ओर से बनाना घटनाओं में एक आकर्षण की तरह काम करता है, बस मैं क्या नहीं करना चाहता है ...

var_dump($event) with some randomly generated data: 
'name' => string 'Try a athirst these and' (length=23) 
'tagline' => string 'as it that he down the almost the' (length=33) 
'description' => string 'that deeper but is sea whenever lead all a stream knowing robust bakehouses attending have am it pent for own quick' (length=115) 
'category' => int 5 
'subcategory' => int 52 
'location' => string 'same as more the' (length=16) 
'start_time' => int 1263630600 
'end_time' => int 1263654000 
'street' => string 'This Was Ships My 807' (length=21) 
'phone' => string '49 692 324' (length=10) 
'email' => string '[email protected]' (length=15) 
'privacy_type' => string 'OPEN' (length=4) 

<?php 

$facebook = new Fb(FACEBOOK_API_KEY, FACEBOOK_API_SECRET); 
// Set session key (that has been returned after offline-access has been granted) 
$facebook->api_client->session_key = '5de03e54cb359f9asf3435365e-4588985454'; 
$eid = $facebook->api_client->events_create(json_encode($event)); 

?> 

परिणाम मेरे दिन को बचाने में सक्षम है?

+0

सुनिश्चित करें कि आप इतने पर एक सत्र कुंजी पोस्टिंग की जानी चाहिए। मैं आपकी घटनाओं तक पहुंच प्राप्त करने के लिए इसका उपयोग कर सकता था। –

+0

नहीं, आप नहीं कर सके। मैंने बस कुछ ऐसा टाइप किया जो session_key जैसा दिखता है ;-) – Sebastian

+0

क्या आप '$ event' की संरचना पोस्ट कर सकते हैं? ऐसा लगता है कि आपके पास खराब डेटा है। – mattbasta

उत्तर

1

मान लीजिए कि आपने create_events विस्तारित अनुमति मांगी है, तो आपको इसे Open Graph API और अद्यतित PHP SDK के साथ करने में सक्षम होना चाहिए।

$facebook = new Facebook(array(
    'appId' => 'application ID', 
    'secret' => 'application secret', 
    'cookie' => true, 
)); 
if ($session = $facebook->getSession()) { 
    try { 
    $event = $facebook->api("/me/events","post",array(
     'title'=>'My Event Name', 
     'start_time'=>1263630600, 
     'end_time'=>1263654000, 
     // etc add your other event info here 
    )); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    } 
} 

यह रूप में अच्छी तरह एक क्रॉन कार्य के रूप में से चलाना चाहिए, मैं क्यों यह नहीं होगा पता नहीं है: कोड इस (नहीं परीक्षण किया) की तरह कुछ होगा।

1

क्या आप वाकई सत्र कुंजी का उपयोग करने की आवश्यकता है? मैं access_token का उपयोग कर रहा हूं जो तब उपलब्ध कराया जाता है जब दीवार पर आइटम पोस्ट करने और ऑफ़लाइन उपयोगकर्ता जानकारी तक पहुंच के लिए पहुंच प्रदान की जाती है।

संपादित करें: कोड उदाहरण है कि उपयोगकर्ता दीवार से आइटम पोस्ट करने के लिए पूरी तरह से मेरे लिए काम करता (घटनाओं को समान रूप से काम करते हैं):

<?php 
$ch = curl_init ('https://graph.facebook.com/me/feed'); 
curl_setopt ($ch, CURLOPT_POST, true); 
curl_setopt ($ch, CURLOPT_POSTFIELDS, array('access_token' => $user_access_token, 'message' => $message, 'link' => $link)); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); 
$ret = curl_exec ($ch); 
$ret = json_decode($ret); 
if (!empty($ret->id)) { 
    return true; 
} 
return false; 
नहीं