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 details)

Uploaded Source

Built Distribution

django_tweets-0.0.9-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file django-tweets-0.0.9.tar.gz.

File metadata

  • Download URL: django-tweets-0.0.9.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.31.0 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

File hashes

Hashes for django-tweets-0.0.9.tar.gz
Algorithm Hash digest
SHA256 9d0408785ef8ec005e48c7ae3621e58dc04890bed656d4a5e903c480c20f95b4
MD5 ba825f5a93400c0b4a22480f87fd7ed2
BLAKE2b-256 cea299303ab7d5141e03962c34e4433bb91d310206e370d61cf33fdf761bd793

See more details on using hashes here.

File details

Details for the file django_tweets-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: django_tweets-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.31.0 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

File hashes

Hashes for django_tweets-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 0bbcbd0ef8ecc95752c57cfbf0fc05dbb9444e1f4ac380693efa6c32defd44ab
MD5 9cb2ffd751bb3f5ff74542d4597788cb
BLAKE2b-256 669a7b80cc2a7800a1ba5fcf6116c8c53ba324a6285620cab27c8247d12e8d6c

See more details on using hashes here.

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