我使用四方API在用户输入单词时显示自动建议。我用:
$http.get('https://api.foursquare.com/v2/venues/search?&near='+input+'&query=' +input+'&intent=gloabal&limit=5&oauth_token=D5STL1YLFPPGLOF121W....&v=2016...')
但我没有得到确切的结果。有时它不会显示任何空对象,也会显示不同语言,如泰米尔语,乌尔都语等......
然后我尝试了一个例子 - 泰姬陵。如果我输入taj,taj ma,taj maha就好了......它没有显示任何内容......只有当我在搜索框中输入taj mahal时才会建议taj mahal。
任何人都可以提供一些见解吗?
答案 0 :(得分:1)
试着为你调试一下。以下是一些可能存在问题的明显事项:
a)您的意图似乎指定了gloabal
vs global
,这可能会通过https://developer.foursquare.com/docs/venues/search默认为意图checkin
b)您的搜索可能存在问题,例如:寻找泰姬陵附近的泰姬陵。
要深入了解详细信息,可能有助于深入了解发送到Foursquare的一些原始HTTP请求。
这是一个用于在泰姬陵附近寻找“食物”的CURL命令示例。
curl -v 'https://api.foursquare.com/v2/venues/search?&near=taj%20mahal&query=food&intent=global&limit=5&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&v=20160828'
要诊断问题,尝试并模拟两个输入可能是有意义的,例如:靠近并使用上面的curl查询params来诊断响应是否是您正在寻找的。
此外,值得注意的是near
必须是代表世界上某个地方的字符串。如果near字符串不是geocodable
,您应该会看到failed_geocode
错误。如果您使用参数near=taj%20ma
,则特定于您的问题,您可能会按预期获得failed_geocode
。有关详情,请访问https://developer.foursquare.com/docs/venues/search
有关语言的细节,我的理解是您可以在请求中的Accept-Language HTTP标头中设置区域设置(首选),或者指定参数locale
。如果没有指明任何内容,我的假设是可能会使用该国家最受欢迎的语言。有关详情,请访问https://developer.foursquare.com/overview/versioning