Я предлагаю вам начать изучать, как API Graph Facebook работает в первую очередь.
- Facebook НИКОГДА не сообщит вам пароль пользователя!
- Если вам просто нужно дать пользователю возможность поделиться ссылкой, просто используйте подобный плагин . Вы также можете найти более интересные социальные плагины для использования на вашем сайте.
- Если вы используете плагин like, он не откроет всплывающие окна и разместит ссылку непосредственно на стене пользователя.
- Вы всегда можете использовать Диалог подачи
- Начните читать Документацию Facebook
Теперь, чтобы разместить на стене пользователя (от его имени) без его входа в систему, вам необходимо следующее:
- приложение
access_token
publish_stream
разрешение, НЕТ НЕОБХОДИМОСТИ для долгосрочного токена доступа:
Позволяет вашему приложению публиковать контент, комментарии и лайки для пользователя.
поток и в потоки друзей пользователя. Это суперсет
разрешение на публикацию, которое также включает publish_actions. Тем не мение,
обратите внимание, что Facebook рекомендует модель совместного использования по инициативе пользователя.
Пожалуйста, прочтите Политики платформы, чтобы убедиться, что вы понимаете, как
правильно использовать это разрешение. Обратите внимание, вам не нужно запрашивать
Разрешение publish_stream для использования Диалога Канала,
Диалог запросов или Диалог отправки.
Требуется разрешение:
Это можно сделать несколькими способами:
Использование плагина входа в систему :
<div class="fb-login-button" data-show-faces="true" data-width="200" data-scope="publish_stream" data-max-rows="1"></div>
Вход на стороне сервера (Перенаправление в диалог OAuth):
https://www.facebook.com/dialog/oauth?
client_id=YOUR_APP_ID
&redirect_uri=YOUR_URL
&scope=publish_stream
&state=SOME_ARBITRARY_BUT_UNIQUE_STRING
PHP-SDK :
$loginUrl = $facebook->getLoginUrl(array("scope"=>"publish_stream"));
JS-SDK с помощью метода FB.login :
FB.login(function(response) {
if (response.authResponse) {
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
console.log('Good to see you, ' + response.name + '.');
FB.logout(function(response) {
console.log('Logged out.');
});
});
} else {
console.log('User cancelled login or did not fully authorize.');
}
}, {scope: 'publish_stream'});
Издательство:
$USER_ID = "XXXXXXXX"; // Connected once to your APP and not necessary logged-in at the moment
$args = array(
'message' => 'Hello from app',
'link' => 'http://www.masteringapi.com/',
'caption' => 'Visit MasteringAPI.com For Facebook API Tutorials!'
);
$post_id = $facebook->api("/$USER_ID/feed", "post", $args);
Примечание:
Хотя публикация возможна без присутствия пользователя, всегда помните, что Facebook рекомендует модель совместного использования, инициированную пользователем