首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Facebook应用程序中出现致命错误:在非对象上调用成员函数getLongLivedSession()

Facebook应用程序中出现致命错误:在非对象上调用成员函数getLongLivedSession()
EN

Stack Overflow用户
提问于 2015-01-24 04:17:29
回答 1查看 525关注 0票数 16

我有一个PHP脚本,张贴用户的Facebook页面内容。这是通过Facebook应用程序实现的。

当我单击Authorize时,它加载了10秒,不能开机自检,并且显示了一个空白页面,错误如下:

代码语言:javascript
复制
exception Failed to connect to 2a03:2880:f01f:2:face:b00c:0:2: Network is  unreachable Fatal error: Call to a member function getLongLivedSession() on a non-object in /var/zpanel/hostdata/zadmin/public_html/mysite/thirdparty/networks/facebook/Facebook.php on line 92

直到一周前,一切都运行得很好,但今天我仍然收到这个错误。此问题的原因是什么?

EN

回答 1

Stack Overflow用户

发布于 2015-04-28 09:05:29

许多服务器都启用了IPv6,但它没有被路由,也不能正常工作。当你试图访问一个支持IPv6的站点时,这就变成了一个主要问题。默认情况下,curl将尝试通过IPv6进行连接,并将超时。通过IPv4,它可以很好地工作,只要你添加以下内容:

代码语言:javascript
复制
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );

如果您在使用file_get_contents()get_headers()等时遇到此问题,可以在/etc/sysctl.conf中添加以下行:

代码语言:javascript
复制
#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1 

代码语言:javascript
复制
echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6

根据您的评论进行更新:

freebsd 9中禁用ipv6

代码语言:javascript
复制
/etc/rc.conf


ipv6_network_interfaces="none" # Default is auto

ipv6_activate_all_interfaces="NO" # this is the default

ip6addrctl_enable="NO" # New way to disable IPv6 support

ip6addrctl_policy="ipv4_prefer" # Use IPv4 instead of IPv6

ipv6_activate_all_interfaces="NO" # Do not automatically add IPv6 addresses
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28118047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档