在 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 服务器(我的用户不知道该怎么做)的情况下,我可以做些什么来解决这个问题。
最佳答案
我遇到了同样的问题,刚刚在 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 session 和用户持久性。 https://developers.facebook.com/docs/apis-and-sdks
关于ios - graph.facebook.com 的 DNS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39176501/