如何通过JSON访问“Foursquare Userless Venues API v2”?

时间:2012-03-04 11:45:50

标签: javascript json foursquare

我试图通过在我的ASP MVC地图应用程序上使用他们的无用户API公式访问Foursquare上的场地,但无法管理它的工作。

我的代码是:

var fsObj = [];
var url = 'https://api.foursquare.com/v2/venues/search?ll=' + lat + ',' + lng + '&query=' + type + '&radius=' + distance + '&intent=browse&client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&client_secret=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&v=20120304';
$.getJSON(url, {}, function (data) {
    venues = data['response']['groups'][0]['items'];
    for (var i = 0; i < venues.length; i++) {
        var fsRes = {
            'Id': venues[i]['venue']['id'],
            'Name': venues[i]['venue']['name'],
            'Latitude': venues[i]['venue']['location']['lat'],
            'Longitude': venues[i]['venue']['location']['lng'],
            'Type': type,
            'Vicinity': venues[i]['venue']['location']['address'],
            'Reference': "Foursquare"
        };
        fsObj.push(fsRes);
    }
    printMap(fsObj);
});

正如您所理解的:我从地图中获取了lat,lng和distance值。也试图打印结果。

当我在浏览器上使用相同的网址时,它会得到结果,但遗憾的是在此代码中没有。这让我觉得当我尝试在printMap线上放置一个断点时,json请求可能不是很好;它甚至不会停止。我做错了吗?

任何帮助都将受到高度赞赏。非常感谢你。

新方法,但仍然没有机会:

var getFoursquare = function (p, g, q) {
    var lat = p.lat();
    var lng = p.lng();
    var url = 'https://api.foursquare.com/v2/venues/search?ll=' + lat + ',' + lng + '&query=' + q + '&radius=' + g + '&intent=browse&client_id=XXXXXXXXXXXXXXXX&client_secret=XXXXXXXXXXXXXXXXXXXXXXXXXX&v=20120305';
    $.getJSON(url, function (data) {
        $.each(data.response.venues, function (i, venues) {
            fsRes = {
                'Id': venues.id,
                'Name': venues.name,
                'Latitude': venues.location.lat,
                'Longitude': venues.location.lng,
                'Type': q,
                'Vicinity': venues.location.address,
                'Reference': "Foursquare"
            };
            fsObj.push(fsRes);
        });
        printMap(fsObj);
    }).error(function (event, jqXHR, ajaxSettings, thrownError) { alert(event); alert(jqXHR); alert(thrownError); });
}

1 个答案:

答案 0 :(得分:0)

venues = data['response']['groups'][0]['items'];

响应对象中没有'groups'字段。你想要

venues = data['response']['venues'];

您可能在开始指定版本控制ID之前编写了此代码。群组于2011年6月被删除,因此所有具有最新版本ID的呼叫都不再返回。