Опубликовать ответ на комментарий в Facebook, используя cURL PHP / Graph API - PullRequest
4 голосов
/ 22 апреля 2011

Я знаю, как разместить фид на стене друга.Например:

$url = 'https://graph.facebook.com/' . $fbId . '/feed';

$attachment =  array(
        'access_token'  => $accessToken,
        'message'       => $msg,
        'name'          => $name,
        'link'          => $link,
        'description'   => $desc,
        'picture'       => $logo,
);

// set the target url
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$go = curl_exec($ch);
curl_close ($ch);

$go = explode(":", $go);
$go = str_ireplace('"', '', $go[1]);
$go = str_ireplace('}', '', $go);
return $go;

Но я хочу знать, как опубликовать ответ на конкретный канал, используя cURL PHP или Facebook Graph API.Кто-нибудь может мне помочь с этой проблемой?

Ответы [ 4 ]

4 голосов
/ 23 апреля 2011

Хорошо, во-первых, это лучший способ извлечь идентификатор:

$go = json_decode($go, TRUE);
if( isset($go['id']) ) {
// We successfully posted on FB
}

Так что вы бы использовали что-то вроде:

$url = 'https://graph.facebook.com/' . $fbId . '/feed';

$attachment =  array(
        'access_token'  => $accessToken,
        'message'       => "Hi",
);

// set the target url
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$go = curl_exec($ch);
curl_close ($ch);

$go = json_decode($go, TRUE);
if( isset($go['id']) ) {
    $url = "https://graph.facebook.com/{$go['id']}/comments";

    $attachment =  array(
            'access_token'  => $accessToken,
            'message'       => "Hi comment",
    );

    // set the target url
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $comment = curl_exec($ch);
    curl_close ($ch);
    $comment = json_decode($comment, TRUE);
    print_r($comment);
}

enter image description here

3 голосов
/ 21 ноября 2011

Используйте

FB.api('/[POST_ID]/comments', 'post', { 'message' : 'comment post' }); 

Убедитесь, что у вас, конечно, есть привилегия publish_stream.

2 голосов
/ 23 апреля 2011

Вы пробовали это:

https://graph.facebook.com/" . $go . "/comment

Я думаю, если вы можете опубликовать канал с /feed, то вы можете оставить комментарий с /comment url.

Спасибо.

0 голосов
/ 23 апреля 2011

Я не пробовал это, но вы должны попробовать следующий метод:

  1. получить идентификатор сообщения, которое вы только что опубликовали.Проверьте, есть ли какие-либо значения, возвращаемые графиком API.если нет, вы можете получить идентификатор из поля «id» в «https://graph.facebook.com/".$fbId."/feed".

  2. use FB.api ('/ [POST_ID] / comments', 'post', {'message': 'comment)post '}); убедитесь, что у вас есть привилегия publish_stream для курса.

...