Использование с практическими рекомендациями График FB для добавления сообщения на канале (стена)

Я создал приложение, и теперь я хочу добавить сообщение на одном из моих друзей стена с использованием нового Графика API. Действительно ли это выполнимо?

Я уже использую OAuth и API графика для получения списка всех моих друзей. API по http://developers.facebook.com/docs/api говорит мне ЗАВИХРЯТЬСЯ https://graph.facebook.com / [идентификатор пользователя] / канал для чтения канала, но он также говорит мне, что практическое руководство добавляет сообщение:

curl -F 'access_token=[...]' -F 'message=Hello, Arjun. I like this new API.' https://graph.facebook.com/arjun/feed

Конечно, это не работает! И я не могу узнать почему..

Вот мой PHP-код:

require_once 'facebook.php'; // PHP-SDK downloaded from http://github.com/facebook/php-sdk
$facebook = new Facebook(array(appId=>123, secret=>'secret'));
$result = $facebook->api(
        '/me/feed/',
        array('access_token' => $this->access_token, 'message' => 'Playing around with FB Graph..')
);

Этот код не делает бросает какую-либо ошибку, и я знаю, что мои access_token корректны (иначе я could't выполненный $facebook-> API ('/me? access_token = '. $this-> access_token); получить мой userobject.

Кто-либо там успешно добавил сообщение с помощью API графика? Затем я нуждаюсь в Вашей помощи!:-)

12
задан qualbeen 6 May 2010 в 18:45
поделиться

4 ответа

Хорошо, я наконец решил эту проблему. Спасибо phpfour за вашу помощь: -)

Во-первых: мой URL-адрес подключения выглядит следующим образом (с "publish_stream"):

$connectUrl = $this->getUrl(
  'www',
  'login.php',
  array_merge(array(
    'api_key'         => $this->getAppId(),
    'cancel_url'      => $this->getCurrentUrl(),
    'req_perms'       => 'publish_stream',
    'display'         => 'page',
    'fbconnect'       => 1,
    'next'            => $this->getCurrentUrl(),
    'return_session'  => 1,
    'session_version' => 3,
    'v'               => '1.0',
  ), $params)
);

Второй ; Я пытался отправить сообщение в facebook через

$result = $facebook->api(
    '/me/feed/',
    array('access_token' => $this->access_token, 'message' => 'Playing around with FB Graph..')
);

, но правильный способ сделать это - добавить еще один параметр ('post'):

$result = $facebook->api(
    '/me/feed/',
    'post',
    array('access_token' => $this->access_token, 'message' => 'Playing around with FB Graph..')
);
18
ответ дан 2 December 2019 в 05:40
поделиться

Для записи в фид вам понадобится расширенное разрешение "publish_stream". Вот их полный список: http://developers.facebook.com/docs/authentication/permissions.

Чтобы получить расширенное разрешение, получите токен авторизации таким образом:

https://graph.facebook.com/oauth/authorize?
client_id=...&
redirect_uri=http://www.example.com/callback&
scope=publish_stream
6
ответ дан 2 December 2019 в 05:40
поделиться

Это старый способ получения доступа. В GRAPH сначала я генерировал код ключ с помощью:

$getLinkCode ='https://graph.facebook.com/oauth/authorize'.
              '?client_id=YOUR_APPID'.
              '&redirect_uri=YOUR_SITE'.
              '&scope=publish_stream';

И теперь, когда у нас есть код ключ, мы можем сгенерировать access_token по ссылке:

$getLinkToken='https://graph.facebook.com/oauth/access_token'.
              '?client_id=YOUR_APPID'.
              '&redirect_uri=YOUR_SITE'.
              '&client_secret=YOUR_SECRET'.
              '&code=CODE_KEY';

Но этот access_token публикует ваше сообщение как USER, а не APPLICATION... ПОЧЕМУ?!

Если вы хотите разместить сообщение на стене приложения, используйте:

$facebook->api( '/YOUR_APPID/feed/', 'post', array('access_token' => $this->access_token, 'message' => 'Playing around with FB Graph..'));
0
ответ дан 2 December 2019 в 05:40
поделиться

В дополнение к chf,

После размещения сообщения:

$getLinkToken='https://graph.facebook.com/oauth/access_token'.
              '?client_id=YOUR_APPID'.
              '&redirect_uri=YOUR_SITE'.
              '&client_secret=YOUR_SECRET'.
              '&code=CODE_KEY';

я получил ответ:

 https://graph.facebook.com/oauth/access_token?
    client_id=xxxxxxxxxxxxxx
    &redirect_uri=myurl
    &client_secret=xxxxxxxxxxxxxx
    &code=xxxxxxxxxxxxxx

нет, какой именно - access_token, client_secret или код

$facebook->api( '/YOUR_APPID/feed/', 'post', 
array('access_token' => $this->access_token,
'message' => 'Playing around with FB Graph..'));
1
ответ дан 2 December 2019 в 05:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: