我正在尝试使用Php SDK将图像上传到一个组,但它不断返回此错误“服务器上的IPv6配置无效,请在您的服务器上禁用或获取本机IPv6”。
$access_token = $facebook->getAccessToken();
$output = "";
$facebook->setFileUploadSupport(true);
$group_id = "390114434403182";
//Upload a photo
$photo_details = array(
'message' => 'Screen Shot'
);
//Absolute url
$file='https://aplikoj.com/fbapps/turbopost2/images/ID-10059064.jpg';
$photo_details['image'] = '@' . realpath($file);
//Do the upload and get the responses
$upload_photo = $facebook->api('/'.$group_id.'/photos', 'post', $photo_details);
答案 0 :(得分:0)
检查the source code,我们发现当curl在尝试与Facebook建立IPv6连接时返回错误Network is unreachable
时会发生此错误。
这有两个一般原因:
您的服务器已配置了全局IPv6地址,但实际上并没有实际的IPv6连接。
这是最常见的情况,因此错误消息以这种方式写入。正如您所看到的,代码重试连接强制IPv4,因此您应该只在错误日志中看到这一点,但仍然可以从Facebook获得有效的结果。
这可能是由于服务器上的6to4,Teredo或ISATAP配置不当(所有这些都应该被禁用)或者在IPv6路由不可用时通过错误配置的路由器通告IPv6地址引起的。您应该可以轻松检查服务器的配置,或与管理员联系。
如果你实际上没有从Facebook获得结果,那么你继续......
您的传出IPv4连接已损坏或防火墙。
这通常非常罕见,但如果您在大型企业环境中工作,可能就是这种情况;一些这样的地方喜欢不分青红皂白地阻止Facebook和其他类似的网站。您可能会看到虚假的IPv6错误,并且在通过IPv4重试后仍然会获得FacebookApiException
类型CurlException
。如果是这种情况,您需要联系网络管理员以删除限制。