使用 API 获取 Gowalla 签到历史记录
Posted
技术标签:
【中文标题】使用 API 获取 Gowalla 签到历史记录【英文标题】:Getting Gowalla Check-in history using API 【发布时间】:2010-06-12 23:40:48 【问题描述】:我一直在使用 Gowalla API,想知道是否有人找到了一种方法来获取所有最近签到的列表(只是你自己的,不包括朋友)。文档很糟糕。
【问题讨论】:
【参考方案1】:您可以使用他们的API Explorer 查看 API 方面的可用内容。它非常简洁,可以作为很好的文档,只需查看 REST 样式的 URL。
这是获取最后 5 次签到的基本代码。您将需要一个 API 密钥。
$username = 'sco';
$api_key = 'f6cd524ac9c4413abfb41d7123757d9';
$checkin_num = 5;
$url = "http://api.gowalla.com/users/$username/stamps?limit=$checkin_num";
// setup curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array (
"Accept: application/json",
"X-Gowalla-API-Key: $api_key",
));
$body = curl_exec($ch);
curl_close($ch);
$json = json_decode($body, true);
foreach($json['stamps'] as $stamp)
print $stamp['spot']['name'] . '<br/>';
print "<pre>";
print_r($stamp);
print "</pre>";
这是签入'stamp'
对象的样子:
Array
(
[spot] => Array
(
[image_url] => http://static.gowalla.com/categories/24-standard.png
[url] => /spots/19890
[lat] => 38.9989524833
[address] => Array
(
[locality] => Kansas City
[region] => MO
)
[lng] => -94.5939345333
[name] => The GAF Pub & Grille
)
[first_checkin_at] => 2010-06-12T19:16:57+00:00
[checkins_count] => 1
[last_checkin_at] => 2010-06-12T19:16:57+00:00
)
【讨论】:
很高兴为您提供帮助。欢迎使用 ***! 这为您提供了“印章” - 您在每个不同的地点签到都有一个印章。然而,这不会给您每次签到 - 也不会给您与签到相关的消息。 对,ibz,答案是针对如何使用 php 和 cURL 来获取数据的,我还将提问者推荐给 API Explorer,以便他了解可用的不同数据.如果您觉得我的答案需要编辑或澄清,请随时添加!谢谢。 @artlung 不知道这个问题的初衷是什么——如果它是关于如何从 PHP 调用 Gowalla API,那么你的答案很好。然而,我来到这个问题,希望我能找到一种方法来获得实际的签到——这似乎不可能通过使用 API 资源管理器中描述的 API 调用来实现。 :( 是的,毕竟我找到了一种方法,并在这里发布了答案。【参考方案2】:使用http://api.gowalla.com/users/USERNAME/events 获取用户的所有签到。使用page
参数可以获得第一页以外的结果。不要忘记使用 application/json
值传递 Accept
标头,否则 Gowalla 将简单地返回 500 错误。
【讨论】:
哇,Gowalla 刚刚发布了第 4 版 - 旧 API 仍然有效,但似乎无法捕获在第 4 版客户端上创建的签入!以上是关于使用 API 获取 Gowalla 签到历史记录的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Youtube Javascript API 获取 youtube 用户的观看历史记录?