express - 在快速服务器中提取 - 未定义提取

标签 express facebook-graph-api fetch

我正在尝试从 facebook 获取长期访问 token ...根据文档,我需要从服务器端获取安全性。如果我从客户端获取它工作正常 - 但我应该遵循指导方针。这是我正在做的 - 你能告诉我为什么我得到服务器端错误“引用错误:未定义获取”吗?

首先,我从前端创建了一条路由来请求长生命周期 token 。要获得长生命周期 token ,我需要使用短生命周期 token ,因此我在 req 参数中发送短生命周期 token 。变量 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)
    }
})

如果一切顺利,应该将新 token 发送回客户端。

谢谢你的帮助!

最佳答案

没有fetch()内置在 node.js 中的函数。如果你想要看起来很像 fetch() 的东西在浏览器中,可以查看 node-fetch module在 NPM 中。

或者,有lots of modules你可以从 node.js 中选择。我最喜欢的是 got() .

仅供引用,用于获取 http 请求的内置接口(interface)是 http.request()http.get() ,但它们是较低级别的,并且比上述任何命名模块都需要更多的代码行来做一些简单的事情。

关于express - 在快速服务器中提取 - 未定义提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61684213/

相关文章:

node.js - Mongodb 查询与 Nodejs 中的验证

ios - 使用 FBSDKMessenger 打开特定用户的 facebook Messenger

iphone - Facebook 登录要求安装 (iPhone)

java - spring 序列化类中的每个属性(延迟加载?)

model - Alpine JS 没有正确更新 x-model

mysql - Slack webhooks 导致 cls-hooked 请求上下文孤立 mysql 连接

facebook-graph-api - 此调用需要页面访问 token

php - MySQL fetch_array 返回 false

javascript - 如何使用 node.js 将当前正在下载的视频流式传输到 html5 播放器?