【发布时间】:2013-12-04 00:31:03
【问题描述】:
我想要的是使用公共页面获取数据。
我尝试了文档,但无法找到该信息。然后我用谷歌搜索并在 stackoverflow 上找到了这个Can you get a public Facebook page's feed using Graph API without asking a user to allow? 问题,这完美地解释了我想用 PHP 做什么。我在 McNab 的回答 中读到,我需要 facebook 上的应用程序来获取该数据(以检索访问令牌)。我创建了一个应用程序,它把我带到了基本设置页面,它为我提供了 AppId 和 AppSecret。现在,从 McNab 的答案来看,我只需要 AppId 和应用程序机密来获取 auth_token,我使用了以下代码,但由于某种原因,我得到了 false 而不是 AuthToken。我在这里做错了什么?我没有向应用程序添加任何更多详细信息,是否会导致此问题,我是否需要向应用程序添加更多详细信息,还是有其他原因导致此问题?
P.S 我也在我的 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));(如 cmets 中的建议)时,它给了我这个错误:
string 'SSL证书问题,验证CA证书是否正常。 详细信息:错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败' (长度=146)
【问题讨论】:
-
它返回 false 意味着 cUrl 失败,而不是 FB Api。错误报告是否开启?在 curl_exec 之后尝试
var_dump(curl_error($ch)); -
如果返回值为
bool(false),则有错误,所以你应该使用curl_error($ch)找出它是什么。或者,使用curl_setopt(CURLOPT_VERBOSE, 1);启用调试。 -
这是否意味着你解决了它?
-
@JaapMoolenaar 没有。我很忙。我现在要测试错误。
-
@JaapMoolenaar 请检查问题。我已经用我得到的错误更新了它。
标签: php facebook facebook-graph-api