Php Facebook图形API:Can';无法访问授权令牌

Php Facebook图形API:Can';无法访问授权令牌,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我想要的是使用公共页面的。 我试过文档,但找不到这些信息。然后我在谷歌上搜索,在stackoverflow上发现了这个问题,这很好地解释了我想用PHP做什么。我在McNab的回答中读到,我需要在facebook上安装一个应用程序来获取数据(检索访问令牌)。我创建了一个应用程序,它将我带到“基本设置”页面,其中提供了AppId和AppSecret。现在,根据McNab的回答,我只需要AppId和app secret来获取auth_令牌,我使用了以下代码,但由于某种原因,我得到了false而不是au

我想要的是使用公共页面的。 我试过文档,但找不到这些信息。然后我在谷歌上搜索,在stackoverflow上发现了这个问题,这很好地解释了我想用PHP做什么。我在McNab的回答中读到,我需要在facebook上安装一个应用程序来获取数据(检索访问令牌)。我创建了一个应用程序,它将我带到“基本设置”页面,其中提供了AppIdAppSecret。现在,根据McNab的回答,我只需要AppId和app secret来获取auth_令牌,我使用了以下代码,但由于某种原因,我得到了
false
而不是auth令牌。我做错了什么?我没有向应用程序添加任何进一步的详细信息,这是导致此问题的原因吗?我是否需要向应用程序添加进一步的详细信息,或者是否有其他原因导致此问题

另外,我正在我的PC上的localhost上尝试这个

function fetchUrl($url){

 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_TIMEOUT, 20);

 $feedData = curl_exec($ch);
 curl_close($ch); 

 return $feedData;

}

$profile_id = "100002138417834";

// App info needed for auth.
$app_id = "--------------";
$app_secret = "-=-=-=-=-=-=-=-=-=-=-=-";

$authToken = fetchUrl("https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id={$app_id}&client_secret={$app_secret}");

var_dump($authToken);
更新:

当我做
var_dump(curl_error($ch))(如评论中所建议的),它给了我以下错误:

字符串的SSL证书问题,请验证CA证书是否正常。 详细信息:错误:14090086:SSL 例程:SSL3\u获取\u服务器\u证书:证书验证失败' (长度=146)


ssl证书未正确验证。Curl在与CA证书绑定时能够正确地完成这项工作。要么将curl指向正确的证书(此处的信息),要么一起禁用验证

您可以使用以下方法禁用ssl证书验证:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

这是一个非常常见的旋度问题,答案可能就到此为止;-)

ssl证书未正确验证。Curl在与CA证书绑定时能够正确地完成这项工作。要么将curl指向正确的证书(此处的信息),要么一起禁用验证

您可以使用以下方法禁用ssl证书验证:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

这是一个非常常见的旋度问题,答案可能就到此为止;-)

我试图输出错误(多亏了@Jack),我得到了以下结果:

字符串的SSL证书问题,请验证CA证书是否正常。详细信息:错误:14090086:SSL例程:SSL3_获取_服务器_证书:证书验证失败’(长度=146)

似乎SSL证书有问题。所以我所做的是:

  • 从下载了ca捆绑包
  • 将该捆绑包放在我有index.php文件的同一目录中,即包含代码的文件
  • 然后使用curl_setopt()设置CURLOPT_CAINFO选项以指向该文件(它必须是绝对路径)
  • 刷新了页面,页面正在运行:)
  • 下面是要添加的行:

    curl_setopt($ch,CURLOPT_CAINFO,dirname(uuu FILE_uuu)。/cacert.pem')


  • 这要归功于在聊天中帮助我的@Jack:)

    我试图输出错误(感谢@Jack),我得到了以下结果:

    字符串的SSL证书问题,请验证CA证书是否正常。详细信息:错误:14090086:SSL例程:SSL3_获取_服务器_证书:证书验证失败’(长度=146)

    似乎SSL证书有问题。所以我所做的是:

  • 从下载了ca捆绑包
  • 将该捆绑包放在我有index.php文件的同一目录中,即包含代码的文件
  • 然后使用curl_setopt()设置CURLOPT_CAINFO选项以指向该文件(它必须是绝对路径)
  • 刷新了页面,页面正在运行:)
  • 下面是要添加的行:

    curl_setopt($ch,CURLOPT_CAINFO,dirname(uuu FILE_uuu)。/cacert.pem')


  • 这要归功于在聊天中帮助我的@Jack:)

    返回false意味着cUrl失败了,而不是FBAPI。错误报告正在进行吗?尝试
    var_转储(curl_error($ch))
    after curl\u exece如果返回的值是
    bool(false)
    有错误,那么您应该使用
    curl\u error($ch)
    来找出它是什么。或者,使用
    curl\u setopt(CURLOPT\u VERBOSE,1)启用调试。这是否意味着你解决了它?@JaapMoolenaar不。我很忙。我现在要测试错误。@JaapMoolenaar请检查问题。我已经用我得到的错误更新了它。返回false意味着cUrl失败,而不是FBAPI。错误报告正在进行吗?尝试
    var_转储(curl_error($ch))
    after curl\u exece如果返回的值是
    bool(false)
    有错误,那么您应该使用
    curl\u error($ch)
    来找出它是什么。或者,使用
    curl\u setopt(CURLOPT\u VERBOSE,1)启用调试。这是否意味着你解决了它?@JaapMoolenaar不。我很忙。我现在要测试错误。@JaapMoolenaar请检查问题。我用我得到的错误更新了它。我用我对这个问题的答案解决了它,但是你的答案也很有效(而且似乎更简单)谢谢:)谢谢!你有处理问题和答案的好方法。保持下去:-)我用我对这个问题的答案解决了这个问题,但是你的答案也很有效(而且似乎更简单)谢谢:)谢谢!你有处理问题和答案的好方法。保持下去:-)