はじめに
最近、個人開発で「ぽもログ」というWebサービスを作りました。
スキマ時間を活用してポモドーロタイマーを記録し、その日の頑張りを AI がやさしく採点してくれるサービスです。
この中で、以下の2つの外部サービスを活用しました:
✅ OpenAI API(ChatGPTを使った自動採点・フィードバック生成)
✅ Twitter API(Xアカウントでのログインやシェア連携)
本記事では、これらのAPIを使った理由や実装の流れ・つまずいたポイントなどを、技術者向けにまとめてみました。
同じように「AI」や「SNS連携」を自分のサービスに組み込みたい方の参考になれば幸いです。
使う流れ(ChatGPTモデル)
1OpenAIでアカウントを作成し、APIキーを取得(.envなどに持たせる)
2PythonなどのプログラムでAPIを呼び出す
(使った分だけ課金される従量課金制です)
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY")
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "あなたは親切なAIです"},
{"role": "user", "content": "AIとは何ですか?"}
]
)
print(response.choices[0].message.content)
OpenAI APIの大きな魅力のひとつは、使用するモデルやプロンプト(AIへの指示文)を自由に設計できる点です。
これにより、サービスの目的やユーザー体験に合わせて、最適なAIの挙動を引き出すことが可能になります。
APIでは、モデル名を指定するだけで、GPT-3.5やGPT-4、最新のGPT-4oといったさまざまなモデルを使い分けることができます。たとえば、
model="gpt-3.5-turbo" # 軽量・高速・安価
model="gpt-4" # 高精度・論理的思考に強い
model="gpt-4o" # 最新・高性能・画像も扱える
また、AIに渡すメッセージ(プロンプト)も完全に自由に設計可能です。
たとえば、AIに「やさしく励ましてほしい」「プログラマー風に厳しく指摘してほしい」など、キャラや口調、目的に合わせて個性を持たせることができます。
messages=[
{"role": "system", "content": "あなたはやさしくユーザーを応援するAIです。"},
{"role": "user", "content": "~を頑張りました…"}
]
使う流れ(X API+Flask)
1Twitter Developerアカウント登録
こちらで登録
2プロジェクトとアプリを作成(X APIの鍵を得るため)
3 APIキー・シークレットを取得
@main_bp.route("/login/twitter")
def login_twitter():
redirect_uri = "https://pomolog.net/login/callback"
return current_app.twitter.authorize_redirect(redirect_uri)
@main_bp.route("/login/callback")
def twitter_callback():
token = current_app.twitter.authorize_access_token()
resp = current_app.twitter.get("account/verify_credentials.json")
user_info = resp.json()
username = user_info["screen_name"]
authlib を使って Twitter OAuth 1.0a を登録
app.twitter に認証機能をアタッチ
これにより /login/twitter で Twitterログインができるようになる
from authlib.integrations.flask_client import OAuth
oauth = OAuth(app)
twitter = oauth.register(
name='twitter',
client_id=os.getenv("TWITTER_API_KEY"),
client_secret=os.getenv("TWITTER_API_SECRET"),
request_token_url='https://api.twitter.com/oauth/request_token',
access_token_url='https://api.twitter.com/oauth/access_token',
authorize_url='https://api.twitter.com/oauth/authorize',
api_base_url='https://api.twitter.com/1.1/',
)
終わりに
今回は、OpenAI APIとTwitter APIを使って、実際に「ぽもログ」というサービスに機能を組み込んだ経験を紹介しました。
どちらのAPIもドキュメントが充実しており、初心者でも取り組みやすい反面、OAuthの認証フローやトークン管理など、細かい部分では意外とハマりどころも多かった印象です。
AIを活用しながらの開発でしたがかなりつまずくこともありました。
もしこの記事が、同じように「AI」や「SNS連携」をサービスに組み込みたい方のヒントになればうれしいです。