我正在阅读 Foursquare API 并试图了解如何使用它进行地点搜索(作为 Google Places 的替代方案)。然而,令我惊讶的是它始终需要提供客户端 key !
我在浏览器中使用它,获得响应的唯一方法是在请求中同时提供客户端密码和客户端 ID。这是“客户 secret ”,应该有另一种方法可以做到这一点,而不使用客户 secret 。 Google API 检查引用 url 和客户端 ID。 Foursquare 支持这样的东西吗?
我知道我可以在我的服务器中向 foursquare 发出请求并从我的 JavaScript 客户端代码中调用它。但这将是非常丑陋的(IMO),因为用户必须等待双倍的响应时间 user -> my-server -> foursquare-api
而不是 user -> foursquare-api
.
我的 Web 应用程序中的一个页面将使用它:Where can I a great place in the city to see Christmas lights in Boston, MA? , 尝试分享一个提示以找出答案(你不必真的发布它!)。
最佳答案
这是我从一位开发人员那里学到的技巧。
它不是代理,但类似。它仍然会从您的 IP 地址(而不是服务器)发出请求,但签名发生在服务器上。它不会产生大量网络流量。
基本上它只是一个签名端点。您在服务器上创建一个页面,该页面仅对请求进行签名但实际上并不执行它。然后使用 Location: https://api.foursquare.com/...
header 将用户重定向到页面的签名版本。
请注意,所有签名都发生在服务器上,但实际请求是由客户端发出的。不会泄露任何 secret ,因为它们仅在服务器上使用。
关于javascript - 使用 JavaScript 在不暴露客户端 secret 的情况下搜索四方位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8694492/