没有身份验证的场地统计(签到)的终点

时间:2012-01-03 14:09:32

标签: api authorization foursquare endpoint

我正在为工作网站构建一个“社交媒体小部件”。我现在正在添加Foursquare,并希望使用Foursquare API显示我们在29个地点留下的所有签到和提示。我不需要任何用户数据,但是当我查看开发站点上的端点页面并选择场地平台API时,它会显示统计信息端点。提示端点可以使用,所以这不是问题。

有没有办法在没有经过授权的情况下访问场地的签到数量?我只需要签到的数量。

谢谢, 科林

3 个答案:

答案 0 :(得分:1)

您熟悉Foursquare Venues Platform吗? 这个相对较新的API部分支持在没有“代理用户”的情况下查询场地“数据库”。当然,你仍然需要在Foursquare上注册你的申请。

但是,一个小技巧:如果您在没有“代理用户”的情况下查询Foursquare中的“此处此处”数据,您将只看到名字的第一个字母和姓氏。 (所以像“C. Wren”或“G. Horck”这样的名字)。如果您使用“个人”帐户,则可以看到与您成为朋友的人的全名。根据您组织的规模,将所有同事标记为朋友可能会很酷,因此您可以显示有关此人的更多信息。

更新

其他一些数据,例如/stats端点,仅供场地所有者使用。证明这一点的唯一方法是像所有者一样进行身份验证,因此在这种情况下,您必须为场地所有者获取access_token。我担心你无法绕过它。

答案 1 :(得分:0)

我现在已经成功获得了所需的数据。我使用/venues/端点和我们拥有的场地的ID。然后我将这些捆绑到/multi/端点请求中(我使用了一组调用来获得超过5个请求限制)。我的jQuery代码如下(我在经典的ASP服务器上,没有加载其他库也不能使用JSON)。

var endpoint = "https://api.foursquare.com/v2/multi?requests=";
var numbers = new Array();
numbers[0] ="/venues/[VENUE ID],/venues/[VENUE ID],/venues/[VENUE ID],/venues/[VENUE ID],/venues/[VENUE ID]";
numbers[1] = "/venues/[VENUE ID],/venues/[VENUE ID],/venues/[VENUE ID],/venues/[VENUE ID],/venues/[VENUE ID]";
numbers[2] = "/venues/[VENUE ID],/venues/[VENUE ID],/venues/[VENUE ID],/venues/[VENUE ID],/venues/[VENUE ID]";
numbers[3] = "/venues/[VENUE ID],/venues/[VENUE ID],/venues/[VENUE ID],/venues/[VENUE ID],/venues/[VENUE ID]";
numbers[4] = "/venues/[VENUE ID],/venues/[VENUE ID]";
var auth_string = "&client_id=[CLIENT ID]&client_secret=[CLIENT SECRET]&v=[DATE in YYYYMMDD]";
    var checkins = 0;
    var tips = 0;
    $.each(numbers,function(index,value) {
        $.getJSON(endpoint + numbers[index] + auth_string,function(json){
            $.each(json.response.responses,function(index){
                checkins = checkins + json.response.responses[index].response.venue.stats.checkinsCount;
                tips = tips + json.response.responses[index].response.venue.stats.tipCount;
            });
            $("#foursq #checkins").html("Checkins: " + checkins + "<br />");
            $("#foursq #tips").html("Tips: " + tips);
        });
    });

这基本上只是循环遍历每个场地,获取checkinsCount和tipCount的统计数据,然后将它们添加到总数中。然后将它们打印到您想要显示的任何位置。我发现计数有问题,但好像你没有在'getJSON'循环之外打印它,它变成了0。

希望这可以帮助其他人做类似的事情

答案 2 :(得分:0)

我正要重复这个问题,因为答案不能让我满意。实际上,答案主要集中在统计数据上,这些数据非常有用,但却以经理为中心。

办理登机手续的次数很容易,但却是会场对象的一部分。因此,您只需查找其ID(https://developer.foursquare.com/docs/venues/venues)的场地详细信息即可获得签到次数。

完全符合逻辑,但如果这可以帮助失去的开发人员经过:)