Ошибка API YouTube (в обещании) Ошибка: запрос не выполнен с кодом состояния 403 - PullRequest
1 голос
/ 06 марта 2019

Я пытаюсь интегрировать API YouTube в новое приложение Vuejs, тестирую его в браузере и продолжаю получать ошибку 404.

У меня пропал www, но я продолжаю получать ту же ошибку при выполнении запроса.Что-то я не вижу в своем коде, что неправильно?Это проблема с корсом?Если да, то какова стандартная практика для решения этой проблемы в Vuejs?Я сделал подобное приложение в Reactjs и не столкнулся с этой проблемой.

<template>
  <div>
    <SearchBar @termChange="onTermChange"></SearchBar>
  </div>
</template>

<script>
import axios from "axios";
import SearchBar from "./components/SearchBar";
const API_KEY = "<api_key>";

export default {
  name: "App",
  components: {
    SearchBar
  },
  methods: {
    onTermChange(searchTerm) {
      axios
        .get("https://www.googleapis.com/youtube/v3/search", {
          params: {
            keys: API_KEY,
            type: "video",
            part: "snippet",
            q: searchTerm
          }
        })
        .then(response => console.log(response));
    }
  }
};
</script>

Я заметил в ответ я получил это сообщение:

"code": 403,
  "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
 }
}

Я не уверен, чтоэто значит.

Ответы [ 2 ]

2 голосов
/ 06 марта 2019
"code": 403,
  "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
 }
}

Это означает, что вы превысили лимит для показа видео с YouTube.Вам необходимо создать учетную запись, чтобы иметь возможность показывать больше видео.

Если вы уверены, что не превысили свой лимит / у вас есть учетная запись, дважды проверьте консоль разработчика, что API включен. Developer Console .

Я бы предложил добавить catch к вашему вызову для обработки ошибок в будущем.

axios
  .get("https://www.googleapis.com/youtube/v3/search", {
    params: {
      keys: API_KEY,
      type: "video",
      part: "snippet",
      q: searchTerm
    }
  })
  .then(response => console.log(response));
  .catch(err => { console.log(err); }
1 голос
/ 06 марта 2019

Вставьте свой ключ API в URL, например,

"https://www.googleapis.com/youtube/v3/search?key=YOUR_API_KEY"

axios.get("https://www.googleapis.com/youtube/v3/search?key=Your_Api_Key", {
          params: {
            type: "video",
            part: "snippet",
            q: searchTerm
          }
        })
        .then(response => console.log(response));

Вы также найдете пример здесь

...