【发布时间】:2015-01-10 14:17:20
【问题描述】:
以下代码尝试根据访问令牌为 facebook url 运行 file_get_contents:
$access_token=$ret["oauth_token"];
$fbid=$ret["oauth_uid"];
$url ="https://api.facebook.com/method/friends.getAppUsers?format=json&access_token=$access_token";
try {
$content = file_get_contents($url);
if ($content === false) {
$common_friends = array("error_code" => "something");
} else {
$common_friends = json_decode($content,true);
}
} catch (Exception $ex) {
//Who cares
}
所有 Facebook 设置都是正确的,唯一的潜在问题是访问令牌不再有效。在这种情况下,我会收到警告
file_get_contents(): php_network_getaddresses: getaddrinfo 失败: 名称或服务未知
如何升级我的代码,所以如果 facebook 用户访问令牌过期/无效,file_get_contents 不会发出警告,而是正常失败?
编辑:
$content = @file_get_contents($url);
仍然显示相同的警告,但是,我想摆脱它。 NetBeans 还警告我错误控制运算符被滥用。我修改了我的代码如下:
try {
User::checkFacebookToken();
//file_get_contents sends warning message when token does not exist
//the problem is already handled, therefore these warnings are not needed
//this is why we set scream_enabled to false temporarily
ini_set('scream.enabled', false);
$content = file_get_contents($url);
ini_set('scream.enabled', true);
if ($content === false) {
$common_friends = array("error_code" => "something");
} else {
$common_friends = json_decode($content,true);
}
} catch (Exception $ex) {
//Who cares
}
希望scream.enabled只是暂时改成false。
【问题讨论】:
标签: php facebook file-get-contents