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 functionalities 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
TWITTER_USERNAME Useful for accessing to the url of a Tweet object No

Example:

import os
from dotenv import load_dotenv
load_dotenv()

...

############################## django-tweets ##############################
# username
TWITTER_USERNAME = "django_tweets" # https://twitter.com/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 tweet with a media file

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

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

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

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

# 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(tweet_file)

# publish it
tweet.publish()

Usage in the admin

Django admin

Similarly works with the TweetFile and TweetFileUpload models.

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.9.tar.gz (9.8 kB view hashes)

Uploaded Source

Built Distribution

django_tweets-0.0.9-py3-none-any.whl (11.1 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