在iOS上,我遇到graph.facebook.com
失败的DNS查询问题,但仅限于我正在使用移动数据时。我的服务提供商是AT& T.
如果我尝试在Chrome中访问http://graph.facebook.com
,该页面将返回ERR_NAME_NOT_RESOLVED
。
当然,这会导致我的应用中出现使用Facebook SDK的问题,因为SDK会对graph.facebook.com
进行API调用。
如果我打开wifi,一切正常,因为使用的DNS服务器不同于我使用移动数据时使用的DNS服务器。
如果我重新启动设备,那么http://graph.facebook.com
会工作一段时间,但随后dns查找将在使用手机数据时再次失败。
AT& T和他们的DNS服务器存在这个问题吗?有什么我可以做的事情来解决这个问题而不需要更改默认的DNS服务器(我的用户不知道该怎么做)。
答案 0 :(得分:1)
我遇到了同样的问题,刚刚在Twitter上联系了FB。似乎IP6记录在某些地方无法正确解析。在科罗拉多州为我正确解决,但在达拉斯的服务器没有。
服务器端SDK实施
将/etc/hosts
中的DNS记录设置为正确的(截至今天)主机名。请记住,这只是一个临时解决方案,因为它们的IP可能会发生变化。
# IP6
2a03:2880:f00b:1:face:b00c::1 graph.facebook.com
# IP4
31.13.74.1 graph.facebook.com
客户端SDK实施
由于您无法修改用户设备的/etc/hosts
文件,因此您可以编写使用FB SDK的服务器端服务。此服务将充当您的应用的代理或外观,您的应用可以直接调用您的自定义服务。 FB SDK在这里,我使用PHP SDK来管理经过身份验证的FB会话和用户持久性。 https://developers.facebook.com/docs/apis-and-sdks