Публикация на стене пользователя без подключения к Интернету / вход в систему - общий доступ к Facebook с помощью Graph API
Привет, я новичок в Facebook. Я хочу, чтобы пользователь вошел в систему, используя свой uid, а затем сохранил их для дальнейшего использования.
Основная цель - поделиться ссылками на стене пользователя.
в следующий раз, не показывая окно в фейсбуке, я хочу опубликовать его на стене через ajax.
Как это возможно, любая помощь по этому поводу будет оценена!
РЕДАКТИРОВАТЬ
Я использовал приведенный пример, а затем попробовал функцию curl
получил эту ошибку
HTTP/1.1 403 Forbidden
Cache-Control: no-store
Content-Type: text/javascript; charset=UTF-8
Expires: Sat, 01 Jan 2000 00:00:00 GMT
P3P: CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p"
Pragma: no-cache
WWW-Authenticate: OAuth "Facebook Platform" "insufficient_scope" "(#200)
This API call requires a valid app_id."
Set-Cookie: datr=g4JBTb4OsRZxBAztV7iIkpWg; expires=Sat, 26-Jan-2013 14:34:43 GMT;
path=/; domain=.facebook.com; httponly
X-Cnection: close
Date: Thu, 27 Jan 2011 14:34:43 GMT
Content-Length: 93
{"error":{"type":"OAuthException","message":"(#200)
This API call requires a valid app_id."}}
РЕДАКТИРУЙТЕ, ЧТО-ТО МОЖЕТ НАЙТИ ПОЛЕЗНЫЙ
FACEBOOK СОЕДИНЕНИЕ
$facebook_connect = array(
'appId' => 'YOUR APP_ID',
'secret' => 'YOUR SEC KEY',
'access_token'=>"USER'S ACCESS TOKEN",
'cookie' => true
);
ПОСТ ПОЛЬЗОВАТЕЛЬСКОЙ СТЕНЕ
$facebook->api("/PROFILE_ID/feed", "post", array(
"message"=>"Hi Friends Join ****",
"name"=>"You're invited to join ****!",
"link"=>"www.****.com",
"description"=>"Great site",
"picture"=>"http://www.****.com/logo.jpg",
"caption"=>"Join *****"
)
1 ответ
Я предлагаю вам начать изучать, как API Graph Facebook работает в первую очередь.
- Facebook НИКОГДА не сообщит вам пароль пользователя!
- Если вам просто нужно дать пользователю возможность поделиться ссылкой, просто используйте плагин like. Вы также можете найти более интересные социальные плагины для использования на вашем сайте.
- Если вы используете плагин like, он не откроет всплывающие окна и разместит ссылку прямо на стене пользователя.
- Вы всегда можете использовать Диалог Подачи
- Начните читать документацию Facebook
Теперь для публикации на стене пользователя (от его имени) без его входа в систему необходимо следующее:
- приложение
access_token
publish_stream
разрешение, НЕТ НЕОБХОДИМОСТИ для долгоживущего токена доступа:
Позволяет вашему приложению публиковать контент, комментарии и лайки в ленте пользователя и в потоках его друзей. Это разрешение на публикацию расширенного набора, которое также включает publish_actions. Тем не менее, обратите внимание, что Facebook рекомендует модель совместного использования по инициативе пользователя. Пожалуйста, прочтите Политики платформы, чтобы убедиться, что вы понимаете, как правильно использовать это разрешение. Обратите внимание, что вам не нужно запрашивать разрешение publish_stream для того, чтобы использовать диалог Feed, диалог Requests или диалог Send.
Требовать разрешения:
Это можно сделать несколькими способами:
Используя плагин входа в систему:
<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
$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 рекомендует модель обмена, инициированную пользователем.