我正在制作一个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.' } ]。但是我怎么能用相同的身份验证在本地运行正常...
有没有人能帮我做个链接或解释?谢谢:)
发布于 2021-02-05 12:05:54
基本上,问题出在.env文件和vars中。如果你在你的onw服务器(本地),下一个js会得到正确的环境变量,但是当你把它发送到vercel时,vercel服务器会尝试从另一个文件中获得这些.env变量,而不是从这个文件(.var)中,你可以在这里了解更多:
https://nextjs.org/docs/basic-features/environment-variables
https://stackoverflow.com/questions/66018428
复制相似问题