Каковы предварительные условия для Facebook stream.publish? - PullRequest
4 голосов
/ 20 июля 2009

Мне интересно, поможет ли кто-нибудь мне устранить неполадки в моем тесте для stream.publish. Я думал, что у меня были все правильные части. Вот код:

<?php
require_once 'facebook.php';
$appapikey = 'xxxxxxx';
$appsecret = 'xxxxxxx';
$facebook = new Facebook($appapikey, $appsecret);
$user_id = $facebook->require_login();


$message = "Will this status show up and allow me to dominate the world?!";
$uid = $user_id;
echo $uid;
$facebook->api_client->stream_publish($message,$uid);

Я ожидаю, что мой статус изменится на содержимое $ message. Вместо этого происходит то, что мой UID отображается эхом, а затем выдает ошибку 500. Я разрешил publish_stream, а также offline_access (проверено в настройках моего приложения через мой профиль), ключ API привязывает этот небольшой кусочек кода к моему приложению. Какие еще части мне нужны, чтобы этот простой пример работал? Я нахожу документацию FB немного сложной для составления.

- Включена официальная библиотека PHP Facebook

Ответы [ 4 ]

6 голосов
/ 21 июля 2009

stream_publish () принимает более двух аргументов:

stream_publish($message, $attachment = null, 
               $action_links = null, $target_id = null, 
               $uid = null)

Где $ target_id - это пользователь или страница, которую вы публикуете до , а $ uid - это пользователь или страница, которые выполняют публикацию, и по умолчанию используется идентификатор вашей сессии. Чтобы быть полностью откровенным об этом, я думаю, вам нужно попробовать

<?php
require_once 'facebook.php';
$appapikey = 'xxxxxxx';
$appsecret = 'xxxxxxx';
$facebook = new Facebook($appapikey, $appsecret);
$user_id = $facebook->require_login();

$message = "Will this status show up and allow me to dominate the world?!";

echo $user_id;
$facebook->api_client->stream_publish($message,null,null,$user_id,$user_id);

Альтернативная форма может быть:

$app_id = 'xxxxxxx'; 
$facebook->api_client->stream_publish($message,null,null,$user_id,$app_id);
2 голосов
/ 05 мая 2011

Это работает в 2011 году! У меня такая же проблема. Большинство изменений кажется устаревшим благодаря изменениям на Facebook. В конце концов я нашел способ, который сработал, и сделал небольшую статью об этом здесь:

http://facebookanswers.co.uk/?p=214

Там также снимок экрана, чтобы показать вам, каков результат. Убедитесь, что вы также видите сообщение в блоге об аутентификации.

0 голосов
/ 12 февраля 2010

Если вы пытаетесь использовать streamPublish с приложением iFrame, вот замечательное пошаговое руководство, в котором не нужно использовать getAppPermissions:

http://thetechnicalexperience.blogspot.com/2010/02/how-to-use-fbconnectstreampublish.html

0 голосов
/ 21 июля 2009

Удалите переменную $uid, так как она не нужна для публикации. Обратитесь к этой вики записи для получения дополнительной информации

$stream_post_id = $facebook->api_client->stream_publish($message); 
//returns $post_id to use if you want to revert the creation. 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...