Foursquare API Bad Запрос без причины на React Native - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь вытащить близлежащие объекты из API-интерфейса foursquare, используя реакционную систему native.

Для начала я попытался вытащить объекты из определенных координат, и вот мой очень простой код;

import React from 'react';
import { StyleSheet, Text, View, Button } from 'react-native';
import axios from 'axios'

export default function App() {

  var venues;

  return (
    <View style={styles.container}>
      <Text>{this.venues} qwewqe</Text>
      <Button
  onPress={() => {
    this.getVenues()
  }}
  title="GET VENUES"
/>
    </View>
  );

}

getVenues = () => {

  const endpoint = 'https://api.foursquare.com/v2/venues/explore'
  const parameters = {

    CLIENT_ID:"*******",
    CLIENT_SECRET:"*******",
    section: "food",
    ll: "   40.74224,-73.99386",
    v: "20190909"

  }

  axios.get(endpoint + new URLSearchParams(parameters))
  .then(response => {
    console.log(response)
   this.venues = response;
    return response;
  })
  .catch(error => {
    console.log("ERROR >>    " + error)
  })


}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
});

Вывод на консоль:

ERROR >> Request failed with error code 400

Что ж, 400 - это, как вы знаете, неверный запрос.так что код выглядит работающим в какой-то момент.

Я не понял, что не так с моим запросом?также проверил документы, но не сделал.Для получения подробной информации об ошибке я запустил браузер, но получаю getVenues - это не ошибка функции.

Спасибо за вашу поддержку ...

1 Ответ

1 голос
/ 19 сентября 2019

Вы создаете неправильный URL с предоставленным синтаксисом, потому что

axios.get(endpoint + new URLSearchParams(parameters))

генерирует что-то вроде

https://api.foursquare.com/v2/venues/exploreCLIENT_ID=*******&CLIENT_SECRET=*******&section=food&ll=+++40.74224%2C-73.99386&v=20190909

, поэтому, возможно, попробуйте что-то вроде axios.get(endpoint + "?" + new URLSearchParams(parameters))

Также яМы только что видели, что они возвращают 400 для неавторизованного запроса с типом ошибки

"errorType": "invalid_auth"

, поэтому обязательно проверьте, что именно является вашим типом ошибки.

...