создавать события на странице моего приложения - PullRequest
0 голосов
/ 14 сентября 2011

Я нахожусь в процессе написания приложения, которое работает таким образом 1. Запрашивает у пользователя разрешение для events_create, publish_stream 2. Получает access_token для того же 3. принимает ввод заголовка, даты, времени, местоположения (то есть всех входных данных) из формы и затем вызывает график API как / $ app_id / events вместе с токеном доступа и датой публикации

Я хочу, чтобы это создавало событие в событиях моего ПРИЛОЖЕНИЯ, и поэтому я использую $ app_id вместо .... / me / events

Но это создает событие на стене ПОЛЬЗОВАТЕЛЯ ???

Я хочу, чтобы пользователи могли создавать события на моей стене. Это должно быть событие, владельцем которого является приложение, и пользователь должен получить приглашение вместе со своими контактами (если он выберет) ...

В принципе, я думаю, что POST для / $ app_id / events и / me / events работает одинаково, я думаю, что это не должно ... Я что-то упустил?

Заранее спасибо ..

AC


HiShakyeb

Тот же результат ... Он просто создает событие в моей учетной записи, а не в приложении.

Вот код, который я использую ..

    $url = "https://graph.facebook.com/$app/events?" . $access_token; 
    $params = array();
    // Prepare Event fields
    foreach($_POST as $key=>$value)
    if(strlen($value))
        $params[$key] = $value;

$params['name']=mysql_real_escape_string($params['name']);
$params['description']=mysql_real_escape_string($params['description']);
$params['location']=mysql_real_escape_string($params['location']);

$params['end_time']=date('Y-m-d H:i:s', mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"))); 
$params['privacy_type']="SECRET";

   // Start the Graph API call
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$result = curl_exec($ch);
$decoded = json_decode($result, true);
curl_close($ch);

Я тоже пробовал только приложение / события? вместо $ app / events?

Большое спасибо ...

Ответы [ 2 ]

0 голосов
/ 03 января 2012

С помощью PHP-SDK я использую API-вызов для автоматического РАЗМЕЩЕНИЕ события на странице приложения после заполнения формы.

Здесь происходит автоматический процесс после пользователя(У вас) есть действующий APP access_token и вы управляете разрешениями для приложений / страниц.Используемый токен - это токен APP, который вы получаете при подключении к FBapp.

Начало создания объекта php-sdk

$connectparam = array();
$connectparam['appId'] = 'YOURAPPID';
$connectparam['secret'] = 'YOURAPPSECRET';
$connectparam['fileUpload'] = 'true';
$connectparam['cookie'] = 'true';
$facebook = new Facebook($this->connectparam);

Создание информации о событии

$FBcreateAnTestEvent = array();
$nowtime = date('Y-m-d H:i:s');
$FBcreateAnTestEvent['name'] = 'Test Event in myApp from me';
$FBcreateAnTestEvent['start_time'] = $nowtime;
$FBcreateAnTestEvent['privacy_type'] = 'SECRET';
$FBcreateAnTestEvent['description'] = 'This Event is created from my WebFBApp and is a testing Event creating by Qtronik from myWebApp';

Автоматическиcreate event

$resp = '<a href="'.$facebook->api('/me/events','POST',$FBcreateAnTestEvent).'">
Create a test event</a>';
echo $resp; 

Когда эхо php-sdk повторяется, немедленно создайте Событие, поэтому лучше поместить его на ajax-страницу или в страницу действий в виде ссылки

Для FanPage используйте ссылку FQL

Если вы анализируете admin_pages FBuser и фильтруете по полю APPLICATION и / или фильтруете по своему идентификатору FBpage, вы можете получить этого пользователя FBpages admin access_token's.Конечно, вам нужны разрешения manage_pages.Тогда вам нужно разрешение admin_events для публикации в FBfanPage.Я создаю FanPageEvent со ссылкой GraphApi следующим образом:

$pageAccessToken = $facebook->api('/' . $YOURPAGEID . '/?fields=access_token');
$resp = '<a href="https://graph.facebook.com/'.$pageAccessToken['id'].'/events
?access_token=' . $pageAccessToken['access_token'] . '
&method=POST
&name='.$FBcreateAnTestEvent['name'].'
&start_time='.$FBcreateAnTestEvent['start_time'].'
&location='.$FBcreateAnTestEvent['location'].')">
Create a test event</a>';

Затем, вуаля, у меня есть множество других вещей, чтобы сделать это для обработки его с помощью Ajax, но это два способа добавления событий в Facebook изспособ администрирования веб-сайта ... Все это не очень предназначено для создания личного профиля, поэтому спамить на FBpages и / или FBapp / FBwebapp труднее.

Я говорю по-французски, так что извините за плохой английский...;)

0 голосов
/ 17 сентября 2011

Используйте токен доступа администратора страницы , чтобы выполнить действие от имени страницы этого приложения. Для этого получите /me/accounts с разрешением manage_pages. Это даст вам страницы, к которым у вас есть доступ (включая страницу профиля приложения), а также токен доступа, который будет использоваться для работы в качестве этой страницы / приложения. Если вы используете этот токен доступа, то события будут создаваться как страница приложения, а не как пользователь. Для получения дополнительной информации см. Документацию Graph API для объекта Page .

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