繁体   English   中英

Facebook Graph API:无法访问授权令牌

[英]Facebook Graph API: Can't access the authorization token

我想要的是使用公共页面获取数据。 我尝试了文档,但找不到该信息。 然后我在Google上搜索了它,发现它可以在不要求用户允许的情况下使用Graph API获得Facebook公共页面的提要吗? 问题在stackoverflow上完美地解释了我想用PHP做什么。 我在McNab的答案中读到,我需要在facebook上安装一个应用程序来获取该数据(以检索访问令牌)。 我创建了一个应用程序,它带我进入了基本设置页面,在其中提供了AppIdAppSecret 现在,从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证书有问题。 所以我所做的是:

  1. 此处下载了ca捆绑包。
  2. 将该捆绑软件放在我拥有该index.php文件的同一目录中,即具有代码的文件。
  3. 然后使用curl_setopt()设置CURLOPT_CAINFO选项以指向该文件(它必须是绝对路径)。
  4. 刷新页面,它正在工作:)
  5. 这是要添加的行:

    curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__). '/cacert.pem');

归功于@Jack,他在聊天中帮助了我:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM