Может кто-нибудь, пожалуйста, дайте мне пример публикации подобного сообщения в facebook из внешнего приложения с аутентифицированным пользователем?
Скажем, у меня есть фид, который вытаскивает сообщения из facebook, и я хочу создать кнопку, которая позволяет пользователю использовать сообщение из моего приложения. При нажатии этой кнопки, как я могу лучше создать это так, чтобы сообщение было обновлено на Facebook с помощью пользователя?
Мои мысли в том, что я могу создать функцию javascript onclick, которая соответствует сценарию php, который делает что-то вроде: $ facebook-> api («/ $ id / likes», «POST»); , но мне нужно повторно инициализировать facebook с этой страницы, прежде чем я смогу выполнить этот вызов? или отправить токен доступа и т. д.? Это то, что меня смущает об этом методе на стороне сервера. Как сделать этот звонок нажатием? Пример был бы очень полезен! Заранее спасибо!!
Хорошо, наконец, нашел достойное решение и без завитки. Это сценарий, который я вызываю в моей функции ajax onclick:
<?php $access_token = $_GET['token']; $post_id = $_GET['id']; function do_post_request($url, $data, $optional_headers = null) { $params = array('http' => array( 'method' => 'POST', 'content' => $data )); if ($optional_headers !== null) { $params['http']['header'] = $optional_headers; } $ctx = stream_context_create($params); $fp = @fopen($url, 'rb', false, $ctx); if (!$fp) { echo "error"; } $response = @stream_get_contents($fp); if ($response === false) { throw new Exception("Problem reading data"); } return $response; } $data = "access_token=".$access_token; $url = 'https://graph.facebook.com/'.$post_id.'/likes'; $result = do_post_request($url, $data, $optional_headers = null); ?>
Также в моем проверенном рабочем коде $ post_id имеет идентификатор пользователя, почтой которого он был сначала следующим: SOURCEUSERID_POSTID
Получил это решение из комбинации этого сообщения – http://wezfurlong.org/blog/2006/nov/http-post-from-php-without-curl/
и этот – Как сообщения за Facebook graph api
надеюсь, это поможет кому-то еще!