我正在尝试使用Sitecore 8.1的地理位置服务来检测客户的位置并提供正确的网站背景。
是否有可以通过编程方式使用的API?任何示例代码?
答案 0 :(得分:2)
你真的不应该。该服务并不意味着在您的页面请求中同步调用 - 在您有答案之前阻止网站页面传递。它根本不会表现得很好。
Sitecore Marketplace提供了GeoLite解析器(Github链接:https://github.com/adoprog/Sitecore-Geo-Lite-Resolver),虽然这已经相当陈旧,但它仍然可以在Sitecore 8项目中包含和编译。
它基本上使用MaxMind数据库的离线轻量级副本 - 足以解决国家/地区分辨率(但不是城市) - 并且可以非常快速地(<10ms)响应查找。
答案 1 :(得分:1)
您需要Sitecore.Analytics.Lookups
命名空间。 Sitecore.Analytics.Lookups.GeoIpManager.GetGeoIpData
应该让你开始。
请记住,基于GeoIP数据的框中已经存在一些规则和条件。它也可以(重新)使用它们。
答案 2 :(得分:0)
Sitecore Marketplace还具有MaxMind GeoIP2自定义查找提供程序模块,该模块使用MaxMind GeoIP2城市数据库API,无需xDB https://marketplace.sitecore.net/en/Modules/M/MaxMind_GeoIP2_CustomLookupProvider.aspx
答案 3 :(得分:0)
上面的说法是正确的,你应该避免调用GeoManager,GeoManager在许多地方都是一个例子,但是对分析很困惑。您应该调用LookupManager.GetInformationByIP(ip);
,它解析IP并使用GeoIP缓存。
我们在尝试利用Sitecore管道中的Geo IP数据时遇到了同样的问题,因为默认情况下GeoData尚不可用。
记录于:http://edgebytes.com/2016/09/08/calling-sitecore-geo-ip-location-service/