错误的facebook页面帖子url与错误&#34一起使用;需要访问令牌来请求此资源。"

时间:2014-08-29 19:55:30

标签: php facebook facebook-graph-api

我从脸谱图api得到了意想不到的行为。我通过cURL代表页面发帖,帖子显示在页面上,但是链接格式显示了facebook网址,例如https://graph.facebook.com/v2.1/507522299329185/feed,而不是提供的实际网站链接,例如http://ameboapp.com/2fh2s ...

这是用于发布页面访问令牌的函数。

public function postLink($title, $url, $caption, $description, $message, $image_url) {

    $url = 'https://graph.facebook.com/v2.1/' . $this->page_id . '/feed';

    $fields_string = '';
    $fields = array(
        'access_token' => $this->page_token,
        'link' => $url,
        'picture' => $image_url,
        'name' => $title,
        'caption' => $caption,
        'description' => $description,
        'message' => $message,
    );

    //url-ify the data for the POST
    foreach ($fields as $key => $value) {
        $fields_string .= $key . '=' . $value . '&';
    }

    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_VERBOSE, 1);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLINFO_HEADER_OUT, 1);

    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $fields_string);

    $response = curl_exec($curl);

    return $response;
}

访问图表链接时,会显示此错误“”需要访问令牌才能请求此资源。“

任何人都可以帮助辨别正在发生的事情以及如何解决问题吗?谢谢。实际页面位于:https://www.facebook.com/ameboapp

1 个答案:

答案 0 :(得分:1)

您正在将$url设置为图谱API调用:

$url = 'https://graph.facebook.com/v2.1/' . $this->page_id . '/feed';

但你也在帖子中使用同一个变量:

'link' => $url,

您应该在帖子中为'link'添加第二个网址,即您想要的网址。现在你只是将API调用作为帖子的链接发布,这将永远不会起作用。