2010-01-15 31 views
5

Tôi đang cố gắng tạo sự kiện trên facebook qua cron-job. Các sự kiện sẽ được tạo ra thay mặt cho người dùng của trang web kết nối facebook của tôi, những người đã cấp quyền truy cập ngoại tuyến. Tôi có session_keys mà không hết hạn, nhưng không thể làm cho nó hoạt động! Tạo sự kiện đại diện cho ứng dụng của tôi hoạt động như một nét duyên dáng, chỉ cần không phải là những gì tôi muốn ...Tạo sự kiện facebook qua cron-job

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)); 

?> 

Kết quả trong: "ngoại lệ 'FacebookRestClientException' với thông điệp 'tham số không hợp lệ'"

Có ai có thể cứu ngày của tôi không?

+0

Không chắc bạn nên đăng một session key trên SO. Tôi có thể sử dụng nó để truy cập vào các sự kiện của bạn. –

+0

Không, bạn không thể. Tôi chỉ cần gõ một cái gì đó trông giống như một session_key ;-) – Sebastian

+0

Bạn có thể đăng cấu trúc của '$ event'? Có vẻ như bạn đã có dữ liệu xấu trong đó. – mattbasta

Trả lời

1

Giả sử bạn đã yêu cầu quyền mở rộng create_events, bạn sẽ có thể thực hiện việc này với Open Graph API mới và cập nhật PHP SDK. Mã sẽ giống như thế này (không được kiểm tra):

$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); 
    } 
} 

Nó cũng chạy như một nhiệm vụ CRON, tôi không biết tại sao nó lại không.

1

Bạn có chắc chắn cần sử dụng khóa phiên không? Tôi đã sử dụng access_token được cung cấp khi quyền truy cập được cấp để đăng các mục lên tường và truy cập thông tin người dùng ngoại tuyến.

chỉnh sửa: mã ví dụ làm việc cho tôi một cách hoàn hảo cho đăng mục để sử dụng tường (sự kiện làm việc như nhau):

<?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; 
Các vấn đề liên quan