Как мне прочитать ЕДИНОЕ обновление статуса, комментарий или что-то подобное? - PullRequest
0 голосов
/ 25 декабря 2011

У меня работает канал чтения, и я получаю все, что должно, и похоже на массив, указанный ниже:

Моя проблема в том, что я хочу получить отдельное сообщение.Я пробовал:

// what I think should work - fails
$msgData = $facebook->api("/$fb_id/posts/$msgToken", 'GET', $parameters);

// link in msg (below) but fb gives "unknown browser" error message
$msgData = file_get_contents("http://www.facebook.com/$fb_id/posts/$msgToken");

// as per fb docs but this fails too...
$msgData = file_get_contents("https://graph.facebook.com/$msgToken");

Итак, каков реальный способ получить только одно сообщение, когда вы знаете этот идентификатор сообщения?

[0] => Array
    (
        [id] => 100002222222222_209088888888888
        [from] => Array
            (
                [name] => My dog
                [id] => 100002222222222
            )

        [message] => this is a test msg...
        [picture] => http://platform.ak.fbcdn.net/www/app_full_proxy.php?app=999999999999999...
        [link] => http://www.domain.com/
        [name] => Application Name
        [caption] => Caption of for this post
        [description] => A description of this post
        [icon] => http://www.facebook.com/images/icons/default_app_icon.gif
        [actions] => Array
            (
                [0] => Array
                    (
                        [name] => Comment
                        [link] => http://www.facebook.com/100002222222222/posts/209088888888888
                    )

                [1] => Array
                    (
                        [name] => Like
                        [link] => http://www.facebook.com/100002222222222/posts/209088888888888
                    )

            )

        [privacy] => Array
            (
                [description] => Friends
                [value] => ALL_FRIENDS
                [allow] => 0
                [deny] => 0
            )
    )

1 Ответ

1 голос
/ 25 декабря 2011

Вы можете получить доступ к одному сообщению по идентификатору записи, который 100002222222222_209088888888888 в предоставленном вами образце. (идентификатор сообщения "{$user_id}_${message_id}")

Для того, чтобы вам нужно также активные access_token. Если вы используете Facebook PHP-SDK, он будет использовать зарегистрированного пользователя access_token (если вы вошли в Facebook и пользователя FB.login или Facebook::getLoginUrl)

$post_id = '100002222222222_209088888888888';
$msgData = $facebook->api("/{$post_id}");

в противном случае вам нужно будет указать его вручную:

$post_id = '100002222222222_209088888888888';
$access_token = "APPLICATION_OR_USER_ACCESS_TOKEN";

// Using Facebook PHP-SDK
$parameters = array('access_token'=>$access_token);
$msgData = $facebook->api("/{$post_id}", 'GET', $parameters);

// OR

// Using file_get_contents
$url = "https://graph.facebook.com/{$post_id}?access_token={$access_token}";
$msgData = file_get_contents($url);
...