Php Facebook图形API:Can';无法访问授权令牌
我想要的是使用公共页面的。 我试过文档,但找不到这些信息。然后我在谷歌上搜索,在stackoverflow上发现了这个问题,这很好地解释了我想用PHP做什么。我在McNab的回答中读到,我需要在facebook上安装一个应用程序来获取数据(检索访问令牌)。我创建了一个应用程序,它将我带到“基本设置”页面,其中提供了AppId和AppSecret。现在,根据McNab的回答,我只需要AppId和app secret来获取auth_令牌,我使用了以下代码,但由于某种原因,我得到了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
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请检查问题。我用我得到的错误更新了它。我用我对这个问题的答案解决了它,但是你的答案也很有效(而且似乎更简单)谢谢:)谢谢!你有处理问题和答案的好方法。保持下去:-)我用我对这个问题的答案解决了这个问题,但是你的答案也很有效(而且似乎更简单)谢谢:)谢谢!你有处理问题和答案的好方法。保持下去:-)