【问题标题】:Twitter authentication working in local, but in Vercel server doesn't (Next.JS) [duplicate]Twitter 身份验证在本地工作,但在 Vercel 服务器中不工作 (Next.JS)
【发布时间】:2021-05-07 03:33:11
【问题描述】:

我正在创建一个 next.js 网站并使用库 Twitter-lite 来访问 Twitter API。由于某种原因,代码在我的本地服务器中正常运行,但是当我将其发送到 vercel 以发布它时,它不起作用,它返回

502: BAD_GATEWAY
Code: NO_RESPONSE_FROM_FUNCTION
ID: gru1::dzfhn-1612303490166-f7e971564512

代码是:

import Twitter from "twitter-lite";

export default async function getUserTweets(request, response) {
    var amount = 10
    
    const client = new Twitter({
        subdomain: "api",
        consumer_key: process.env.TWITTER_API_KEY,
        consumer_secret: process.env.TWITTER_SECRET_API_KEY,
        access_token_key: process.env.TWITTER_TOKEN,
        access_token_secret: process.env.TWITTER_TOKEN_SECRET,
        bearer_token:process.env.TWITTER_BEARER_TOKEN
    });
    
    
    let timeline = await client.get("statuses/user_timeline", {
        screen_name: "nerat0",
        exclude_replies: true,
        include_rts: false,
        tweet_mode: "extended",
        count: amount + 2
    });
    response.json(timeline)
}

OBS:在 vercel 功能日志中显示:errors: [ { code: 32, message: 'Could not authenticate you.' } ]。但是我怎么能在本地使用相同的身份验证正常运行...

谁能帮我提供链接或解释?谢谢:)

【问题讨论】:

  • 部署到 Vercel 时,您是否检查过您拥有正确的环境变量?
  • 在我的本地服务器中,密钥有效,我可以检查一下吗?另一件事,我已经使用了另一个使用密钥的 API,这个工作正常
  • 添加调试块,如process.env.TWITTER_API_KEY ? 'Env var defined' : throw `Unexpected value ${process.env.TWITTER_API_KEY }`

标签: twitter next.js vercel


【解决方案1】:

基本上问题出在 .env 文件和 vars 中。如果您在您的 onw 服务器(本地)上,下一个 js 将正确获取环境变量,但是当您将其发送到 vercel 时,vercel 服务器尝试从另一个文件中获取这些 .env 变量,而不是从这个文件(.var),你可以在这里阅读更多信息:

https://nextjs.org/docs/basic-features/environment-variables

Environment variables not working (Next.JS 9.4.4)

【讨论】:

    猜你喜欢
    • 2017-06-25
    • 2017-02-06
    • 2019-07-04
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    相关资源
    最近更新 更多