[英]Facebook Graph API: Can't access the authorization token
我想要的是使用公共页面获取数据。 我尝试了文档,但找不到该信息。 然后我在Google上搜索了它,发现它可以在不要求用户允许的情况下使用Graph API获得Facebook公共页面的提要吗? 问题在stackoverflow上完美地解释了我想用PHP做什么。 我在McNab的答案中读到,我需要在facebook上安装一个应用程序来获取该数据(以检索访问令牌)。 我创建了一个应用程序,它带我进入了基本设置页面,在其中提供了AppId和AppSecret 。 现在,从McNab的答案来看,我只需要AppId和应用密钥即可获取auth_token,我使用了以下代码,但是由于某些原因,我得到的不是false
而是AuthToken。 我在这里做错了什么? 我没有向该应用程序添加任何更多详细信息,是否会导致此问题,我是否需要向该应用程序添加更多详细信息,还是有其他原因导致此问题?
PS另外,我也在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_GET_SERVER_CERTIFICATE:证书验证失败”(长度= 146)
ssl证书未正确验证。 与CA证书捆绑在一起时,Curl曾经能够正确执行此操作。 您可以将curl指向正确的证书(此处的信息为http://curl.haxx.se/docs/sslcerts.html ),或者禁用全部验证。
您可以使用以下方式禁用ssl证书验证:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
这是一个非常常见的卷曲问题,对此的答案可能全是SO ;-)
我试图输出错误(感谢@Jack),我得到了:
字符串'SSL证书问题,请验证CA证书是否正确。 详细信息:错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败”(长度= 146)
好像是SSL证书有问题。 所以我所做的是:
这是要添加的行:
curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__). '/cacert.pem');
归功于@Jack,他在聊天中帮助了我:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.