Публикация на стену пользователя без онлайн/регистрации - обмен Facebook с помощью API Graph API

StackOverflow https://stackoverflow.com/questions/4814432

Вопрос

Привет, я новичок в 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."}}

Измените, чтобы кто -то мог найти полезным

Facebook Connection

$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 *****"
)
Это было полезно?

Решение

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

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

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

  1. приложение access_token
  2. publish_stream разрешение, НЕЗАЧЕМ Для долгосрочного токена доступа:

Позволяет вашему приложению публиковать контент, комментарии и любит поток пользователя и потоки друзей пользователя. Это разрешение на публикацию Superset, которое также включает в себя publish_actions. Тем не менее, обратите внимание, что Facebook рекомендует инициированную пользователем модель обмена. Пожалуйста, прочитайте политику платформы, чтобы убедиться, что вы понимаете, как правильно использовать это разрешение. Обратите внимание, что вам не нужно запрашивать разрешение Publish_stream для использования диалога Feed, диалога запросов или диалогового окна «Отправить».

Требуется разрешение:
Это можно сделать во многих отношениях:
С использованием Плагин входа в систему:

<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 Логин Метод:

 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 рекомендует инициированную пользователем модель обмена

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top