Skip to main content

An app to manage tweets in a Django project

Project description

django-tweets

Create and delete tweets in a Django project.

This packages takes the advantage of the tweepy functionalies to connect it to a Django Backend.

The tweets objects can have media files as well.

Set up

Twitter Account

  1. Make sure you have a Twitter account.
  2. Go to the Twitter Developer Portal.
  3. Create a Project and an App
  4. Make sure your App has read and write permissions.
  5. Genenerate the necessary secrets and token.

django-tweets

  1. Install from PyPI
python -m pip install django-tweets
  1. Add the package to your settins INSTALLED_APPS
INSTALLED_APPS = [
    ...
    "django_tweets",
    ...
]
  1. Add the following settings to your Django project.
Django setting Description Required
TWITTER_API_KEY Twitter API OAuth 1.0a Consumer Key Yes
TWITTER_API_KEY_SECRET Twitter API OAuth 1.0a Consumer Secret Yes
TWITTER_BEARER_TOKEN Twitter API OAuth 2.0 Bearer Token / Access Token Yes
TWITTER_ACCESS_TOKEN Twitter API OAuth 1.0a Access Token Yes
TWITTER_ACCESS_TOKEN_SECRET Twitter API OAuth 1.0a Access Token Secret Yes
DJANGO_TWEETS_SYNC_DELETE Synchronize object deletion with Twitter API. This is activated by default. No

Example:

import os
from dotenv import load_dotenv
load_dotenv()

...

# django-tweets
# Consumer Keys
TWITTER_API_KEY = os.environ.get("TWITTER_API_KEY")
TWITTER_API_KEY_SECRET = os.environ.get("TWITTER_API_KEY_SECRET")
# Authentication Tokens
TWITTER_BEARER_TOKEN = os.environ.get("TWITTER_BEARER_TOKEN")
TWITTER_ACCESS_TOKEN = os.environ.get("TWITTER_ACCESS_TOKEN")
TWITTER_ACCESS_TOKEN_SECRET = os.environ.get("TWITTER_ACCESS_TOKEN_SECRET")
# OAuth 2.0 Client ID and Client Secret
TWITTER_CLIENT_ID = os.environ.get("TWITTER_CLIENT_ID")
TWITTER_CLIENT_SECRET = os.environ.get("TWITTER_CLIENT_SECRET")
  1. Run migrations
python manage.py migrate

Usage

Create a simple tweet

from django_tweets.models import Tweet

# create a tweet in the db
tweet = Tweet.objects.create(text="Hi, this is my tweet using django-tweets and tweepy")

# publish it
tweet.publish()

Create a simple tweet with a media file

from pathlib import Path
from django.core.files.base import ContentFile
from django_tweets.models import Tweet, MediaFile

# create a media file
path = Path("path/to/my/file.jpg")

with open(path, "rb") as f:
    f.seek(0)
    contents = f.read()

mediafile = MediaFile.objects.create(title="nice photo")
mediafile.file.save(path.name, ContentFile(contents))
# upload to Twitter
mediafile = mediafile.upload_file()

# create a tweet in the db
tweet = Tweet.objects.create(text="My tweet with a file")

# add the media file to the tweet object
tweet.files.add(mediafile)

# publish it
tweet.publish()

Questions

  • How Can I get the read and write permission for my app? Answer:
  1. In the Twitter Developer Portal, click on gear icon of the project app

Gear icon app settings

  1. Then go User authentication settings and click on the Edit button.

Edit user auth settings

  1. Configure the the form and submit.

User authentication settings

About

🐣 django_tweets

©Django is a registered trademark of the Django Software Foundation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-tweets-0.0.3.tar.gz (6.7 kB view hashes)

Uploaded Source

Built Distribution

django_tweets-0.0.3-py3-none-any.whl (7.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page