Публикация на стене пользователя без подключения к Интернету / вход в систему - общий доступ к Facebook с помощью Graph API - PullRequest
7 голосов
/ 27 января 2011

Привет, я новичок в Facebook.Я хочу, чтобы пользователь вошел в систему, используя свой uid, а затем сохранил их для дальнейшего использования

Основная цель - поделиться ссылками на стене пользователя

в следующий раз, не показывая окно facebook.хочу опубликовать в своей стене через 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."}}

РЕДАКТИРОВАТЬ, ЧТО-ТО МОЖЕТ НАЙТИ ПОЛЕЗНЫЙ1023 * СТОЛБ ПОЛЬЗОВАТЕЛЯ

$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 Ответ

33 голосов
/ 27 января 2011

Я предлагаю вам начать изучать, как API Graph Facebook работает в первую очередь.

  1. Facebook НИКОГДА не сообщит вам пароль пользователя!
  2. Если вам просто нужно дать пользователю возможность поделиться ссылкой, просто используйте подобный плагин . Вы также можете найти более интересные социальные плагины для использования на вашем сайте.
  3. Если вы используете плагин like, он не откроет всплывающие окна и разместит ссылку непосредственно на стене пользователя.
  4. Вы всегда можете использовать Диалог подачи
  5. Начните читать Документацию Facebook

Теперь, чтобы разместить на стене пользователя (от его имени) без его входа в систему, вам необходимо следующее:

  1. приложение access_token
  2. 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 рекомендует модель совместного использования, инициированную пользователем

...