Я пытаюсь получить информацию о настольной игре из API Boardgameeek XML с использованием node.js. У меня есть действительный токен API, но каждый запрос возвращает запретный ответ 403. < /P>
Вот моя текущая настройка: < /p>
async function getInfoFromBGG(gameId) {
const url = `https://rpggeek.com/xmlapi2/thing?id=${gameId}`
let result
const controller = new AbortController()
const timeoutId = setTimeout(() => controller.abort(), 5000)
try {
const response = await fetch(url, {
headers: {
"Authorization": "Bearer i put my token here",
"User-Agent": "BoardgameAlbum/1.0 (kakosangii@gmail.com)",
"Accept": "application/xml"
}
});
clearTimeout(timeoutId)
if (!response.ok) {
console.log(response)
console.log(`HTTP Error: ${response.status} ${response.statusText}`)
return { error: "Failed to fetch from BGG" }
}
const xml = await response.text()
const parser = new DOMParser()
result = parser.parseFromString(xml, "text/xml")
const item = result.querySelector("item")
if (!item) {
return { error: "Game not found" }
}
return {
id: item.getAttribute("id"),
name: item.querySelector("name[type='primary']")?.getAttribute("value"),
yearPublished: item.querySelector("yearpublished")?.getAttribute("value"),
}
} catch (error) {
clearTimeout(timeoutId)
console.error("Fetch error:", error)
if (error.name === "AbortError") {
return { error: "Request timed out" }
}
return { error: "Internal server error: " + error.message }
}
}
< /code>
Тот же код будет работать без каких -либо проблем в браузере, но я должен удалить токен, если я хочу, чтобы код был выполнен идеально. Я пробовал разные подходы, но отметил, что помог. Код не запускается на сервере. Я попробовал несколько подходов, как из бэкэнда, так и из Brandend и Node.js:
Использование из фронта с авторизацией: Заголовки и другие заголовки и другие заголовки. /> Использование пакета BGG-XML-API-Client в node.js. < /p>
подтвердил, что токен API действителен и не истек. Node.js, даже с правильными заголовками. Существуют ли специальные требования для запросов браузера или запросов сервера с их токеном?
Подробнее здесь: https://stackoverflow.com/questions/797 ... e-using-ap
Node.js Fetch в Boardgameeek API всегда возвращает 403, несмотря на использование токена API [закрыто] ⇐ Javascript
Форум по Javascript
1759840363
Anonymous
Я пытаюсь получить информацию о настольной игре из API Boardgameeek XML с использованием node.js. У меня есть действительный токен API, но каждый запрос возвращает запретный ответ 403. < /P>
Вот моя текущая настройка: < /p>
async function getInfoFromBGG(gameId) {
const url = `https://rpggeek.com/xmlapi2/thing?id=${gameId}`
let result
const controller = new AbortController()
const timeoutId = setTimeout(() => controller.abort(), 5000)
try {
const response = await fetch(url, {
headers: {
"Authorization": "Bearer i put my token here",
"User-Agent": "BoardgameAlbum/1.0 (kakosangii@gmail.com)",
"Accept": "application/xml"
}
});
clearTimeout(timeoutId)
if (!response.ok) {
console.log(response)
console.log(`HTTP Error: ${response.status} ${response.statusText}`)
return { error: "Failed to fetch from BGG" }
}
const xml = await response.text()
const parser = new DOMParser()
result = parser.parseFromString(xml, "text/xml")
const item = result.querySelector("item")
if (!item) {
return { error: "Game not found" }
}
return {
id: item.getAttribute("id"),
name: item.querySelector("name[type='primary']")?.getAttribute("value"),
yearPublished: item.querySelector("yearpublished")?.getAttribute("value"),
}
} catch (error) {
clearTimeout(timeoutId)
console.error("Fetch error:", error)
if (error.name === "AbortError") {
return { error: "Request timed out" }
}
return { error: "Internal server error: " + error.message }
}
}
< /code>
Тот же код будет работать без каких -либо проблем в браузере, но я должен удалить токен, если я хочу, чтобы код был выполнен идеально. Я пробовал разные подходы, но отметил, что помог. Код не запускается на сервере. Я попробовал несколько подходов, как из бэкэнда, так и из Brandend и Node.js:
Использование из фронта с авторизацией: Заголовки и другие заголовки и другие заголовки. /> Использование пакета BGG-XML-API-Client в node.js. < /p>
подтвердил, что токен API действителен и не истек. Node.js, даже с правильными заголовками. Существуют ли специальные требования для запросов браузера или запросов сервера с их токеном?
Подробнее здесь: [url]https://stackoverflow.com/questions/79784533/node-js-fetch-to-boardgamegeek-api-always-returns-403-forbidden-despite-using-ap[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия