【问题标题】:php file get contents not working while fetching fb page dataphp文件获取内容在获取fb页面数据时不起作用
【发布时间】:2016-09-10 09:30:21
【问题描述】:

我有以下代码来获取fb页面列表

    $graph_url_pages = "https://graph.facebook.com/me/accounts?access_token=".$_SESSION['token'];
    $pagedata=file_get_contents($graph_url_pages);
    echo "DATA : <br>";
    print_r($pagedata);
    $pages=json_decode($pagedata,true);
    var_dump($pages);
    $dropdown = "";
    for($i=0;$i<count($pages->data);$i++)
    {
        if($me=="iamindex"){
           $dropdown .= "<option value='".$pages->data[$i]->access_token."-".$pages->data[$i]->id."'>".$pages->data[$i]->name."</option>";
        }elseif($me=="iammulti"){
            $dropdown .= "<input type='checkbox' name='page' id='status' value='".$pages->data[$i]->access_token."-".$pages->data[$i]->id."'>".$pages->data[$i]->name."<br>";
        }else{$dropdown.="<option value=''>No Category Selection</option>";}

    }

$pagedata$pages 为空,因此不会填充下拉菜单。

我在页面顶部的某个地方使用Ob_start(),最后是Ob_flush();,它们是需要的。不知道是不是这个问题。

如果有人能指出出了什么问题,那就太好了!如果需要更多代码,我可以提供。请注意,我是一名业余程序员。自学。

【问题讨论】:

  • 尝试使用 curl,这样您就可以获得 Facebook 可能返回的错误代码。或者,php 中的安全模式可能已打开,或者流包装器可能已禁用。签入 php.ini
  • 您在 file_get_contents 之前回显或打印?
  • 可能是 allow_url_fopen=0 在您的 php.ini 文件中由于某些安全目的尝试使用 curl
  • 您确定您的访问令牌是包含 manage_pages 权限的有效用户访问令牌吗?顺便说一句,绝对使用 curl。
  • 您好,当我使用 JYoThl 使用的 curl 方法时,我收到以下消息 -- {"error":{"message":"来自服务器的 API 调用需要 appsecret_proof 参数","type" :"GraphMethodException","code":100,"fbtrace_id":"F0C3Ly6IpJN"}}

标签: php json facebook facebook-graph-api file-get-contents


【解决方案1】:

我推荐使用 cURL

  $graph_url_pages = "https://graph.facebook.com/me/accounts?access_token=".$_SESSION['token'];

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_URL, $graph_url_pages);

  if(curl_error($c))
  {
     echo 'error:' . curl_error($c);
     //it will produce the error if any exists 
  } 

  $data = curl_exec($ch);
  curl_close($ch);
  print_r($data);

【讨论】:

  • 我在使用上面的 Curl 时收到以下消息。但它的希腊语和拉丁语对我来说:( {"error":{"message":"来自服务器的 API 调用需要一个 appsecret_proof 参数","type":"GraphMethodException","code":100,"fbtrace_id":" F0C3Ly6IpJN"}}
  • 我明白这意味着什么。我需要在 facebook 高级设置中关闭 Require App Secret。现在一切都很好。谢谢你:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
相关资源
最近更新 更多