Вопрос:
У меня действительно есть веб-сайт для ресторана, на котором есть модуль регистрации facebook для регистрации пользователей. На моем веб-сайте есть два типа пользователей: один — обычный зарегистрированный пользователь, а второй — зарегистрированный пользователь Facebook. Кажется, до этого момента это работало корректно.На веб-сайте всем пользователям разрешено размещать свои собственные отзывы об отелях, избранных и т.д.
Мне нужен способ автоматического обмена отзывами, лайками и избранными на стене Facebook пользователей на веб-сайте Facebook, используя там данные Fb (Fbid), которые я сохранил в своей базе данных. Каждый отзыв должен быть размещен на стене FB, используя его / ее собственный fb-id без входа в систему fb. Существует ли какой-либо плагин php-Facebook / JSSDK для удовлетворения этого требования?
Я использовал следующие строки библиотечных кодов, но пока ничего не произошло.
require_once 'facebook.php';
$api_key = 'yyyyyyyyyyyyyyyyyyy';
$secret = 'xxxxxxxxxxxxxxxxxxxx';
$name = 'Publish feed code example';
$id='100001948358224';
$name_href = 'http://forum.developers.facebook.com/viewtopic.php?id=44721';
$caption = 'A simple code caption text';
$description = 'The new Facebook.streamPublish code to pop up a publish feed form';
$img_1 = 'http://www.applications.junkieyard.com/fbfgsfy/images/smileys/smiley-09-05.png';
$img_1_href = 'http://apps.facebook.com/fbfgsfy/profile.php';
$action_links_text = 'Facebook?';
$action_links_href = 'http://www.facebook.com/';
$attachment = array('name' => $name, 'href' => $name_href, 'caption' => $caption, 'description' => $description, 'media' => array(array('type' => 'image', 'src' => $img_1, 'href' => $img_1_href)));
$action_links = array(array('text' => $action_links_text, 'href' => $action_links_href));
if ($id) {
$target_id = $id;
?>
<script>
var message = "";
var attachment = <?=json_encode($attachment)?>;
var action_links = <?=json_encode($action_links)?>;
var target_id = <?=$target_id?>;
alert(Facebook.streamPublish(message, attachment, action_links, target_id));
</script>
<?php
}
?>
Комментарии:
1. Вам просто нужно
publish_stream
разрешение вместе с идентификатором пользователяuid
. Если у вас есть такая информация, это несложная задача.
Ответ №1:
offline_access больше не используется в facebook, новый способ — это время истечения ТОКЕНА через новую конечную точку подробнее на https://developers.facebook.com/roadmap/offline-access-removal
Ответ №2:
Вам нужно будет запросить у пользователя publish_stream
и offline_access
разрешения на публикацию на его стене, когда его сеанс неактивен.
Чтобы разместить сообщение на их стене программно, используйте метод feed из FB.ui
FB.ui(
{
method: 'feed',
name: 'Restaurant App',
link: 'http://apps.facebook.com/yourapp',
caption: 'Check out my review',
description: 'The most awesome restaurant ever.',
message: 'Check out this awesome app'
},
function(response) {
console.log(response);
console.log(response.post_id);
if (response amp;amp; response.post_id) {
console.log('Post was published.');
} else {
console.log('Post was not published.');
}
}
);
Чтобы увидеть приведенный выше код в действии, ознакомьтесь с ним в демонстрационном приложении FBRell
Комментарии:
1. Спасибо за ваш ответ. существует ли какой-либо полный подробный код с четкой спецификацией автономного доступа.
2. @Anandhan Вы должны включить это в свой список разрешений, когда запрашиваете разрешения. Смотрите этот пример кода .
3. я использовал приведенный выше фрагмент кода для выполнения этого, но по-прежнему не имею достаточных разрешений для этого. Не могли бы вы, пожалуйста, предоставить мне еще несколько рабочих примеров. я не хочу, чтобы пользователи повторно регистрировались на сайте, мне нужно использовать существующие данные (FB-id) для публикации на его стене FB.