загрузка внутри express сервера - выборка не определена - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь получить долгоживущий токен доступа из facebook ... согласно документации, мне нужно получить со стороны сервера для безопасности. Если я получаю данные со стороны клиента, он работает нормально, но я должен следовать инструкциям. Вот что я делаю - можете ли вы сказать мне, почему я получаю сообщение об ошибке на стороне сервера «Ссылочная ошибка: выборка не определена»?

Сначала я создал маршрут из внешнего интерфейса для запроса долгоживущего токена. Чтобы получить долгоживущий токен, мне нужно использовать короткоживущий токен, поэтому я отправляю недолговечный токен в параметрах req. Переменная userAccessTokenShort действительна и определена.

const newLongLivedUserAccessToken = await fetch(`/api/autoquotegenerators/longLivedUserToken/${userAccessTokenShort}`, {
            method: 'GET',
            headers: {
                Authorization: `Bearer ${token}`,
                "Content-Type": "application/json; charset=UTF-8",
            },
        })
        const newLongUserTokenRes = await newLongLivedUserAccessToken.json()
        console.log(newLongUserTokenRes)

Затем на моем express сервере я создал маршрут, который обрабатывает запрос на выборку в Facebook Graph API. Здесь я получаю справочную ошибку.

//Get Long Lived User Access Token on Backend /express route
router.get('/longLivedUserToken/:shortLived', (req, res) => {
    try {
        const getLongToken = fetch(`https://graph.facebook.com/v7.0/oauth/access_token?grant_type=fb_exchange_token&client_id=#############&client_secret=################&fb_exchange_token=${req.params.shortLived}`)
        .then(token => res.send(token))

    } catch (error) {
        console.log(error)
    }
})

Если все идет хорошо, новый токен должен быть отправлен обратно клиенту.

Спасибо за помощь!

1 Ответ

0 голосов
/ 08 мая 2020

В node.js нет встроенной функции fetch(). Если вам нужно что-то похожее на fetch() в браузере, вы можете посмотреть на node-fetch модуль в NPM.

Или есть лотов модулей вы можете выбрать из node.js. Мой любимый - got().

FYI, встроенный интерфейс для получения HTTP-запросов - http.request() или http.get(), но они более низкого уровня и требуют большего количества строк кода. делать что-то более простое, чем любой из названных выше модулей.

...