Создание событий facebook через cron-job - PullRequest
5 голосов
/ 15 января 2010

Я пытаюсь создать события на Facebook через cron-job. События должны создаваться от имени пользователей моего facebook-connect-сайта, которые предоставили оффлайн-доступ. У меня есть session_keys, которые не имеют срока действия, но не могут заставить его работать! Создание событий от имени моего приложения работает как шарм, просто не то, что я хочу ...

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 'oeott@yahoo.com' (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));

?>

Результат: "исключение" FacebookRestClientException "с сообщением" Неверный параметр ""

Кто-нибудь может спасти мой день?

Ответы [ 2 ]

1 голос
/ 11 февраля 2011

Вы уверены, что вам нужно использовать сеансовый ключ?Я использовал access_token, который предоставляется, когда предоставляется доступ для размещения элементов на стене и доступа к информации о пользователях в автономном режиме.

edit: пример кода, который мне идеально подходит для отправки элементов пользователюстена (события работают одинаково):

<?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;
1 голос
/ 26 января 2011

Если вы запросили расширенное разрешение 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);
  }
}

Это должно выполняться также как CRON, я не знаю, почему это не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...