Foursquare Places API for Venue Search中axios和浏览器的响应差异

问题描述

当我在浏览器中打开以下 Foursqaure API 请求时,

https://api.foursquare.com/v2/venues/search?near=tokyo&client_id=LBPXTL2OS0SAYRDFXR3AB0JDZSCQTFHQFTVTI4YATZ0HDFFX&client_secret=0EUYB2ZK4NEPZVFD4JAXFFCVXNW5Q1GSTILY45402QFSPFSF&v=20180323&limit=1&categoryId=4bf58dd8d48988d181941735

我得到了一个 checkinsCount = 26788 的场地。但是当我通过 axios 发送对相同 URL 的 GET 请求时,就像我在以下代码和框中所做的那样,我得到了不同的响应,场地的 checkinsCount = 0。

https://codesandbox.io/s/stoic-morning-8x2xs?file=/src/App.js

谁能告诉我为什么会有反应差异的原因?

解决方法

因此,经过一些研究,我发现 that article 表示不再通过 api 提供签入数据。

我很困惑为什么它在我的 Chrome 中可见,所以我测试了其他环境,如终端、Firefox、Safari,并且基本上所有地方 checkinsCount 为零。但是我没有在这些环境中登录过 Foursquare 开发者门户,所以我猜他们可能会检查你的 cookie 或其他东西。

这似乎正是他们正在做的事情,如果您登录到开发者门户,他们有 oauth_token cookie,如果您有有效的 cookie,那么您将因某种原因获得一些奖励数据。如果您的 cookie 无效,则会出现响应错误。如果您没有此 cookie,则某些数据(例如 checkinsCount)将不可用

这就是为什么@JeffUk 第一次得到 0 - 他没有登录控制台。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...