🎉 让我们使用 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 && (); })} {loading && ({tweet}
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 💻