🎉 让我们使用 Gemini API、Next.js 和 TailwindCSS 构建一个 AI Twitter 帖子项目 🚀
**2025 年已经到来**,还有什么比建立一个出色的 Twitter Post 项目更好的方式开启新的一年呢?🎯 在这篇博客中,我将向您展示如何将 **Gemini API** 与 **Next.js** 集成,并使用 **TailwindCSS** 对其进行样式设置,以创建一个简单但有效的帖子系统。此外,我们将使用 **Gemini API Key** 来获取帖子并显示它们。
让我们首先预览一下我们的最终小项目是什么样子的:
现在,让我们开始吧!🔥
先决条件📋
在开始之前,请确保您已:
1.创建一个 Next.js 项目
首先创建一个新的 Next.js 项目:
npx create-next-app twitter-post cd twitter-post
2. 安装 Gemini API 包
现在,让我们安装 Gemini npm 包:
npm i @google/generative-ai
在根目录中创建一个 `.env.local` 文件并添加您的 Gemini API 密钥:
GEMINI_API_KEY=your_api_key_here
3. 使用 Gemini API 获取 Twitter 帖子🔥
在项目中创建 `app/api/submit/route.ts` 路径,在 route.ts 中我们将使用 Gemini API 获取类似 Twitter 的帖子并显示它们。
import { GoogleGenerativeAI } from '@google/generative-ai';
import { NextResponse } from 'next/server';
const API_KEY = process.env.GEMINI_AI_API_KEY || "";
export async function POST(req: Request) {
const { description } = await req.json();
if (!description) {
return NextResponse.json(
{ error: 'Description is required.' },
{ status: 400 }
);
}
try {
const genAI = new GoogleGenerativeAI(API_KEY);
const model = await genAI.getGenerativeModel({ model: 'gemini-1.5-flash' });
const prompt = `Generate twitter tweet on the basis of this description: ${description}`;
const result = await model.generateContent([prompt]);
if (result && result.response) {
const generatedText = await result.response.text();
return NextResponse.json({ tweet: generatedText });
} else {
throw new Error('No response received from model.');
}
} catch (error) {
console.error('Error generating tweet:', error);
return NextResponse.json({ error: 'Failed to generate tweet' }, { status: 500 });
}
}以上代码的功能描述为:
4. 处理的主要前端逻辑:生成推文,复制推文。重新生成推文是:
这是简单的“服务器端” html,tailwindcss 组件:
import { RiTwitterXLine } from "react-icons/ri";
import InteractiveForm from "./components/InteractiveForm";
export default function Home() {
return (
Idea to tweet in seconds.
Tweet Craft is your superhuman tweet-writing expert.
);
}处理所有推文生成、复制、重新生成的主要部分是“客户端组件”,即:
'use client';
import { useState } from 'react';
import { BsArrowRightCircle } from "react-icons/bs";
export default function InteractiveForm() {
const [tweet, setTweet] = useState(null);
const [loading, setLoading] = useState(false);
const handleSubmit = async (e: any) => {
e.preventDefault();
const description = e.target.description.value;
setLoading(true);
const response = await fetch('/api/submit', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ description }),
});
const result = await response.json();
setLoading(false);
if (result.tweet) {
setTweet(result.tweet);
} else {
console.error('Error:', result.error);
}
};
const handleCopy = () => {
if (tweet) {
navigator.clipboard.writeText(tweet);
alert('Tweet copied to clipboard!');
}
};
const handleRegenerate = async () => {
if (tweet) {
setLoading(true);
const description = tweet;
const response = await fetch('/api/submit', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ description }),
});
const result = await response.json();
setLoading(false);
if (result.tweet) {
setTweet(result.tweet);
}
}
};
return (
{tweet && (
{tweet}
)}
{loading && (
Generating tweet...
)}
);
} 您可以使用 Tailwind 类轻松更改颜色、间距和其他设计元素。
5.运行项目
现在,是时候运行你的项目了:
npm run dev
在浏览器中打开 `http://localhost:3000`,你就会看见类似 Twitter 的帖子动态!🎉
为仓库做出贡献💻
我很想看看你能用这个项目构建什么!请随意分叉此存储库、创建问题,甚至提交拉取请求。让我们一起让这个项目更加强大!
比如嵌入 twitter api、添加建议按钮功能等。
在这里查看 GitHub 存储库🚀:
Jagroop2001 / tweet-craft
Tweet Craft 是一款使用 Next.js 构建的 AI 应用,可根据用户描述生成推文。通过使用 Gemini 的 API,该应用可让用户根据自己的输入轻松制作推文,非常适合那些寻求快速且富有创意的社交媒体内容的人。
推特工艺
Tweet Craft 是一款使用 Next.js 构建的 AI 应用,可根据用户描述生成推文。通过使用 Gemini 的 API,该应用可让用户根据自己的输入轻松制作推文,非常适合那些寻求快速且富有创意的社交媒体内容的人
视频链接:https://vimeo.com/1043260556?share=copy
特征
安装
先决条件
入门步骤
祝您编码愉快,祝您 2025 年过得愉快!🎉 让我们一起创造更多酷炫的东西吧!
🚀 **保持联系并关注我的旅程!** 🌟
👉 在 Twitter 上关注我🐦
👉 查看我的 GitHub 💻