Twitter 身份验证在本地有效,但在 Vercel 服务器中无效 (Next.JS)
Twitter authentication working in local, but in Vercel server doesn't (Next.JS)
我正在制作一个 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.' } ]
。但是我怎么能 运行 在本地使用相同的身份验证正常...
谁能帮我 link 或解释一下?谢谢:)
基本上问题出在 .env 文件和变量中。如果你在你的 onw 服务器(本地)下一个 js 将获得正确的环境变量,但是当你将它发送到 vercel 时,vercel 服务器尝试从另一个文件而不是这个文件(.var)中获取那些 .env 变量,你可以在这里阅读更多相关信息:
https://nextjs.org/docs/basic-features/environment-variables
我正在制作一个 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.' } ]
。但是我怎么能 运行 在本地使用相同的身份验证正常...
谁能帮我 link 或解释一下?谢谢:)
基本上问题出在 .env 文件和变量中。如果你在你的 onw 服务器(本地)下一个 js 将获得正确的环境变量,但是当你将它发送到 vercel 时,vercel 服务器尝试从另一个文件而不是这个文件(.var)中获取那些 .env 变量,你可以在这里阅读更多相关信息:
https://nextjs.org/docs/basic-features/environment-variables