MENU
  • ホーム
  • サービス
  • 記事一覧
  • お問い合わせ
プログラミングやサーバー設定など様々な内容を紹介しています。
HIROTRONの部屋
  • ホーム
  • サービス
  • 記事一覧
  • お問い合わせ
HIROTRONの部屋
  • ホーム
  • サービス
  • 記事一覧
  • お問い合わせ
  1. ホーム
  2. Django
  3. Django ✕ LINE Messaging APIで簡易的なユーザー登録を作成する①

Django ✕ LINE Messaging APIで簡易的なユーザー登録を作成する①

2025 11/30
Django LINE_Messaging_API
2025年11月30日

Django ✕ LINE Messaging APIで簡易的なユーザー登録を作成する①

LINE Bot開発では、LINEユーザーの管理が必要となってくる場面があります。今回、LINEでできるスタンプラリーの開発に携わった関係でそのあたりの内容をまとめたいと思います。

スタンプラリーのような継続的なサービスでは、「誰が」アクセスしてきたかを保存する必要があります。LINEのユーザーID(Uから始まる文字列)をキーにして、Djangoのモデルでユーザーを管理する方法を紹介します。

あわせて読みたい
Messaging APIリファレンス

目次

  前提

この記事では以下の技術を使います:

  • Django
  • LINE Messaging API

  設定の仕方

チャネルアクセストークンを設定する

.envファイルに記載した LINE_CHANNEL_ACCESS_TOKEN を、settings.py で読み込んで設定しておきます。

LINE_CHANNEL_ACCESS_TOKEN=チャネルアクセストークン
LINE_CHANNEL_ACCESS_TOKEN = os.environ.get('LINE_CHANNEL_ACCESS_TOKEN')
LINE_CHANNEL_ACCESS_TOKEN = settings.LINE_CHANNEL_ACCESS_TOKEN

モデル設計

models.pyにユーザーモデルを定義します。以下はサンプルです。

from django.db import models

class User(models.Model):
    line_id = models.CharField(max_length=50, unique=True, verbose_name="LINE ID")
    name = models.CharField(max_length=100, blank=True, null=True, verbose_name="ニックネーム")
    status = models.CharField(max_length=20, default="awaiting_name", verbose_name="状態")
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.name or self.line_id

line_idはUから始まる文字列を登録するために設定します。(LINEユーザーごとに割り振られるため、被りがない、そのためこの変数に対してuniqueキーを音にしておきます)

nameはユーザーに決めてもらう名前です。ユーザーを呼ぶときなどに使用します。これは被りを想定しておきます。

statusはユーザーの状態についてです。今、どの質問が聞かれている状態なのかなどをここに記します。

created_atはユーザーがいつ登録されたのかを記録します。追加するかはどちらでも良いですが、新規ユーザーかどうかを判定するときなどに役に立つかもしれません。

終わりましたらマイグレーションを忘れずに行ってください

python manage.py makemigrations
python manage.py migrate

Viewでの処理

Webhook内で、ユーザーがデータベースに存在するか確認し、なければ作成する処理です。

user, created = User.objects.get_or_create(line_id=line_id)
user.status = "awaiting_name"
user.save()

get_or_createメソッドをメソッドを使うことで、「ユーザーが存在するか確認→なければ作成」という頻出の処理を1行でスマートに記述できます。

次の記事で具体的なユーザー登録の例を示します。

あわせて読みたい
第1話:WordPressじゃ物足りない!?LINE✕鬼太鼓スタンプラリー開発のはじまり 私は、友達の紹介でさどんでこプロジェクトのIT担当として様々システム構築などを行っています。今回、スタンプラリー作成でかなり大変だったということから、開発秘話…
Django LINE_Messaging_API
Django LINE LINE Messaging API
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
  • Django ✕ LINE Messaging APIでローディングアニメーションを出す方法
  • Django ✕ LINE Messaging APIで簡易的なユーザー登録を作成する②

この記事を書いた人

hiroto121022のアバター hiroto121022

医学生でありながら、さどんでこプロジェクトのITリーダーを務めるフルスタック開発者。LINE BotやGPS連携スタンプラリー、NFT販売サイトなどをすべて独学で開発。使用言語はPython、Typescript、Javascript。Django、Next.js、Reactなどのフレームワークを駆使し、サーバー構築・デプロイ・SSL対応まで一貫して担当。AIによるアートのアニメーション化にも取り組み、伝統文化とテクノロジーを融合させた新しい地域体験の創出に挑戦している。

関連記事

  • Django ✕ LINE Messaging APIで簡易的なユーザー登録を作成する②
    2025年11月30日
  • Django ✕ LINE Messaging APIでローディングアニメーションを出す方法
    2025年6月25日
  • 第4話:位置情報でスタンプ獲得!LIFFとLINE Botの連携の裏側
    2025年6月22日
  • 第3話:地図の中にスタンプ!?Google Maps × Django管理画面の作成
    2025年6月22日
  • 第2話:画像に仕込む魔法!LINEイメージマップとスタンプの格闘記
    2025年6月22日

コメント

コメントする コメントをキャンセル

hiroto121022
医学生でありながら、さどんでこプロジェクトのITリーダーを務めるフルスタック開発者。LINE BotやGPS連携スタンプラリー、NFT販売サイトなどをすべて独学で開発。使用言語はPython、Typescript、Javascript。Django、Next.js、Reactなどのフレームワークを駆使し、サーバー構築・デプロイ・SSL対応まで一貫して担当。
GitHub
新着記事
  • Django ✕ LINE Messaging APIで簡易的なユーザー登録を作成する②
  • Django ✕ LINE Messaging APIで簡易的なユーザー登録を作成する①
  • Django ✕ LINE Messaging APIでローディングアニメーションを出す方法
  • 第4話:位置情報でスタンプ獲得!LIFFとLINE Botの連携の裏側
  • 第3話:地図の中にスタンプ!?Google Maps × Django管理画面の作成

© HIROTRONの部屋.

目次