首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用php调用Api facebook

用php调用Api facebook
EN

Stack Overflow用户
提问于 2016-05-01 01:06:34
回答 2查看 872关注 0票数 0

你好

我的代码有一些问题:

如果我使用它,它就会起作用:

代码语言:javascript
运行
复制
FB.api('https://graph.facebook.com/','post',  {
    id: 'http://example.fr/',
    scrape: true,
    access_token:'xxxxx|xxxxxx'
}, function(response) {
    console.log('rescrape!',response);

});

对于安全令牌,如果我使用以下代码(使用ajax发送url ),我希望使用serveur端:

代码语言:javascript
运行
复制
    class FacebookDebugger {
        public function reload($url)
{
    $token = 'xxxxxxxxxxxxxxx|xxxxxxxxxxx';
    $graph = 'https://graph.facebook.com/';
    $post = 'id='.urlencode($url).'&scrape=true&access_token='.$token;

    return $this->send_post($graph, $post);
}
    private function send_post($url, $post)
    {
        $r = curl_init();
        curl_setopt($r, CURLOPT_URL, $url);
        curl_setopt($r, CURLOPT_POST, 1);
        curl_setopt($r, CURLOPT_POSTFIELDS, $post);
        curl_setopt($r, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($r, CURLOPT_CONNECTTIMEOUT, 5);
        $data = curl_exec($r);
        curl_close($r);
        return $data;
    }
}


    $fb = new FacebookDebugger();
    $fb = $fb->reload($url)

这不管用。在响应ajax中

代码语言:javascript
运行
复制
   $fb = new FacebookDebugger();
        $fbrepons = $fb->reload($url)

        echo var_dump($fbrepons);

我有“布尔值为假”。

一个想法?

谢谢你的帮助

EN

回答 2

Stack Overflow用户

发布于 2016-05-01 04:34:20

在这里找到好的代码

Is there an API to force Facebook to scrape a page again?

代码语言:javascript
运行
复制
//Provide a URL in $url to empty the OG cache
function clear_open_graph_cache($url) {
  $vars = array('id' => $url, 'scrape' => 'true');
  $body = http_build_query($vars);

  $fp = fsockopen('ssl://graph.facebook.com', 443);
  fwrite($fp, "POST / HTTP/1.1\r\n");
  fwrite($fp, "Host: graph.facebook.com\r\n");
  fwrite($fp, "Content-Type: application/x-www-form-urlencoded\r\n");
  fwrite($fp, "Content-Length: ".strlen($body)."\r\n");
  fwrite($fp, "Connection: close\r\n");
  fwrite($fp, "\r\n");
  fwrite($fp, $body);
  fclose($fp);
}
票数 0
EN

Stack Overflow用户

发布于 2017-02-14 03:57:29

There is a guide如何生成Oauth token.Then你必须附加到你的curl请求附加头。

代码语言:javascript
运行
复制
private function send_post($url, $post) {
    $r = curl_init();
    curl_setopt($r, CURLOPT_URL, $url);
    curl_setopt($r, CURLOPT_POST, 1);
    curl_setopt($r, CURLOPT_POSTFIELDS, $post);
    curl_setopt($r, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($r, CURLOPT_CONNECTTIMEOUT, 5);

    $auth_header = 'Oauth ' . {YOUR OAUTH TOKEN};
    curl_setopt($r, CURLOPT_HTTPHEADER, array($auth_header));

    $data = curl_exec($r);
    curl_close($r);
    return $data;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36957760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档