{ "info": { "author": "Dan Loewenherz", "author_email": "dan@elmcitylabs.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities" ], "description": "ECL Twitter\n===========\n\nECL Twitter is an awesome Twitter library for Python 2.7+. It makes the Twitter\nAPI a joy to use, and Django integration is baked in. To find out more, read\non!\n\nIf you have an issue to report or a feature request, add it to our\n`issue tracker `_.\n\n.. _installation:\n\nInstallation\n------------\n\nECL Twitter is on PyPi, so we recommend installing via `pip`_::\n\n $ pip install ecl-twitter\n\n.. _pip: http://www.pip-installer.org/en/latest/\n\n.. _configuration:\n\nConfiguration\n-------------\n\nIf you'd like to use ECL Twitter for a stand alone application (e.g., in a\nscript you're writing to download your tweets), you'll need to set the\nenvironment variables ``TWITTER_KEY``, ``TWITTER_SECRET``, and\n``TWITTER_REDIRECT_URL`` with the values appropriate for your Twitter\napplication.::\n\n export TWITTER_KEY=\"Gmxb5Rh7gpOpzunQ7SQcOA\"\n export TWITTER_SECRET=\"irhZg1W5NO2r7M9IRwhjHKpzKPjJ3HXc6RYCbrM0\"\n export TWITTER_REDIRECT_URL=\"http://example.com/oauth/complete\"\n\nIf you're only interested in integration with Django, read `django`.\n\n.. _authentication:\n\nAuthentication\n--------------\n\nWe've made authentication very simple. Probably too simple, to be honest.::\n\n >>> from ecl_twitter import Twitter\n >>> twitter = Twitter()\n >>> url, token, secret = twitter.generate_authorization()\n >>> url\n https://api.twitter.com/oauth/authorize?oauth_token=XXX\n\nAfter opening this URL in your browser and allowing the application, you'll be redirected to a page with a PIN. This is your ``verifier``.::\n\n >>> twitter = Twitter(token, secret)\n >>> data = twitter.oauth.access_token(oauth_verifier=verifier)\n >>> data\n \n\nCongratulations, you have successfully authenticated with Twitter (told you it was easy). ``data`` is an ``Objectifier`` object which should contain your token, secret, user id, and screen name.\n\nTo call the API, use your newly-acquired access token and access token secret::\n\n >>> twitter = Twitter(data.oauth_token, data.oauth_token_secret)\n >>> tweets = twitter.statuses.user_timeline()\n >>> tweets\n \n\nSo, yeah. That's it. Be fruitful and multiply.\n\n.. _django:\n\nIntegrating with Django\n-----------------------\n\nWhat we did above is easy. For Django projects, we've made it even easier. In your views file::\n\n from django.contrib.auth import authenticate, login\n from django.http import HttpResponseRedirect\n\n from ecl_twitter import twitter_begin, twitter_callback\n\n from .models import User\n\n # ...\n\n @twitter_begin\n def oauth_twitter_begin(request):\n pass\n\n @twitter_callback\n def oauth_twitter_complete(request, data):\n user, _ = User.objects.get_or_create(screen_name=data.screen_name, defaults={\n 'access_token': data.oauth_token,\n 'access_token_secret': data.oauth_token_secret })\n user = authenticate(id=user.id)\n login(request, user)\n return HttpResponseRedirect(reverse('home'))\n\nAdd these values to your settings.::\n\n # The User model that you'll be using to authenticate with Twitter.\n PRIMARY_USER_MODEL = \"app.User\"\n\n AUTHENTICATION_BACKENDS = (\n # ...\n 'ecl_twitter.backends.TwitterAuthBackend',\n )\n\n TWITTER_KEY = \"Gmxb5Rh7gpOpzunQ7SQcOA\"\n TWITTER_SECRET = \"irhZg1W5NO2r7M9IRwhjHKpzKPjJ3HXc6RYCbrM0\"\n TWITTER_REDIRECT_URL = \"http://example.com/oauth/complete\"\n\nThen map the above views in your urls.py::\n\n # ...\n\n urlpatterns = patterns('app.views',\n # ...\n url(r'^oauth/twitter/begin$', 'oauth_twitter_begin'),\n url(r'^oauth/twitter/complete$', 'oauth_twitter_complete'),\n )\n\nYou're done. Oh, you might also want to add some fields for storing the\nTwitter-related fields in your user model.\n\nContributing, feedback, and questions\n-------------------------------------\n\n* Github: https://github.com/elmcitylabs\n* Bitbucket: http://bitbucket.com/elmcitylabs\n* Email: opensource@elmcitylabs.com\n* Twitter: `@elmcitylabs `_\n\nIndices and tables\n==================\n\n* `genindex`\n* `modindex`\n* `search`", "description_content_type": null, "docs_url": "https://pythonhosted.org/ecl_twitter/", "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://elmcitylabs.com", "keywords": null, "license": "Apache 2.0", "maintainer": null, "maintainer_email": null, "name": "ecl_twitter", "package_url": "https://pypi.org/project/ecl_twitter/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ecl_twitter/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://elmcitylabs.com" }, "release_url": "https://pypi.org/project/ecl_twitter/1.2.2/", "requires_dist": null, "requires_python": null, "summary": "Easy Twitter integration for Django.", "version": "1.2.2" }, "last_serial": 791540, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "8254e7833a8b7b9ebec261425ead796b", "sha256": "fd783236fda8755fd15ad19e31371ff414387240fce89150a9550884027b1821" }, "downloads": -1, "filename": "ecl_twitter-1.0.0.tar.gz", "has_sig": true, "md5_digest": "8254e7833a8b7b9ebec261425ead796b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3872, "upload_time": "2012-04-12T18:52:04", "url": "https://files.pythonhosted.org/packages/6a/c0/919563723b16575246225fc131a882ea05d49f4fcceeb1c927c98514e648/ecl_twitter-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "d6d29b2ecb472ddad2016dacdf607f9e", "sha256": "1e055ea1cfe7cced7e66aa09c104dbfd090d792b549315e55ddcbd8d0850f68b" }, "downloads": -1, "filename": "ecl_twitter-1.0.1.tar.gz", "has_sig": false, "md5_digest": "d6d29b2ecb472ddad2016dacdf607f9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3925, "upload_time": "2012-04-12T19:15:13", "url": "https://files.pythonhosted.org/packages/81/5b/a29759efc20c3119a893588391c01f0c0d54b3d626f648cc0629ea401838/ecl_twitter-1.0.1.tar.gz" } ], "1.0.10": [ { "comment_text": "", "digests": { "md5": "aab08e0b89edaeebef968c43443dec9a", "sha256": "8c8bfd6d3ac8bac4c2683095b44d2ccb60f6cdb96f17ac4ff0cf4f3bfcd47651" }, "downloads": -1, "filename": "ecl_twitter-1.0.10.tar.gz", "has_sig": true, "md5_digest": "aab08e0b89edaeebef968c43443dec9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6705, "upload_time": "2012-04-14T23:27:21", "url": "https://files.pythonhosted.org/packages/7e/87/a567bd4b56c7695059c2d06d054237f27adb40b8603b2f1e8ae8dde5e990/ecl_twitter-1.0.10.tar.gz" } ], "1.0.11": [ { "comment_text": "", "digests": { "md5": "8286a0b01adebcfb4fa952e0c8c4fa47", "sha256": "a933fe7fc5fb3b0f77a033fe473a8ca0d223328aa081309e39f741be7d76b258" }, "downloads": -1, "filename": "ecl_twitter-1.0.11.tar.gz", "has_sig": true, "md5_digest": "8286a0b01adebcfb4fa952e0c8c4fa47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6690, "upload_time": "2012-04-14T23:28:55", "url": "https://files.pythonhosted.org/packages/47/27/c420e3758cf1cec8c40381886a5191c8e3278082526e46265686d5970a89/ecl_twitter-1.0.11.tar.gz" } ], "1.0.12": [ { "comment_text": "", "digests": { "md5": "d777b737625892180a8b80ed922e60ec", "sha256": "d15b90b94e3f32d03c6178f4967802ea600ff77bf97894885e6cba181d384e92" }, "downloads": -1, "filename": "ecl_twitter-1.0.12.tar.gz", "has_sig": true, "md5_digest": "d777b737625892180a8b80ed922e60ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7243, "upload_time": "2012-04-15T09:20:42", "url": "https://files.pythonhosted.org/packages/23/34/88449df29d44b534e7b72844d30de39a0cab4b4ee3af841d45b71e7ac739/ecl_twitter-1.0.12.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "d61f960fe768c674e522b3ddf910f538", "sha256": "064cf960030d001b2b93e612131289e7cbcc3d108ae7b3ad97fdfe37d8e86600" }, "downloads": -1, "filename": "ecl_twitter-1.0.2.tar.gz", "has_sig": false, "md5_digest": "d61f960fe768c674e522b3ddf910f538", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3910, "upload_time": "2012-04-12T19:17:48", "url": "https://files.pythonhosted.org/packages/26/f9/6a6f8de182f860f885442d0559254caf767f64fcbf1be11dab026bc7cb37/ecl_twitter-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "8b4f1d8997dc59a5f80b8f72a912a960", "sha256": "98ceffa94b8c6d1dd7ef1727a0e5d7e548dddc56e1a60532739c6429ae507f6f" }, "downloads": -1, "filename": "ecl_twitter-1.0.3.tar.gz", "has_sig": false, "md5_digest": "8b4f1d8997dc59a5f80b8f72a912a960", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4214, "upload_time": "2012-04-12T19:41:53", "url": "https://files.pythonhosted.org/packages/9b/90/9af4ea4cc464bb2fe1399a9b137590f15595482115c9bdefc58845b2cbb5/ecl_twitter-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "41779e899127b4835a12aac7f4fea781", "sha256": "13716b10eb0e1f65ad0ce9ec3125f6ae28a11f23d40d4faed6da8baa2943b7c2" }, "downloads": -1, "filename": "ecl_twitter-1.0.4.tar.gz", "has_sig": false, "md5_digest": "41779e899127b4835a12aac7f4fea781", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4214, "upload_time": "2012-04-12T23:16:09", "url": "https://files.pythonhosted.org/packages/7f/58/7fa07f8fb406ffb566d510a3dabdcef19eb9644a7b43029ae43d884fa44d/ecl_twitter-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "63766e70d940d04ff77be46d970643f2", "sha256": "4961301abaffa8f916aa543c8a783e000907792c27ef534d87dd78946a94d8e8" }, "downloads": -1, "filename": "ecl_twitter-1.0.5.tar.gz", "has_sig": false, "md5_digest": "63766e70d940d04ff77be46d970643f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4207, "upload_time": "2012-04-12T23:18:38", "url": "https://files.pythonhosted.org/packages/65/f1/fb51ee731f34e3e41544e30a12ca414eb497d3394855d028af71471019d0/ecl_twitter-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "dcd3c14fb51104f01e21594d1da53b21", "sha256": "6a2bf6b7078a5c870d045256d25a132e6fc5bc848fe94eaf888de3bd4120d5ef" }, "downloads": -1, "filename": "ecl_twitter-1.0.6.tar.gz", "has_sig": false, "md5_digest": "dcd3c14fb51104f01e21594d1da53b21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4137, "upload_time": "2012-04-12T23:37:42", "url": "https://files.pythonhosted.org/packages/06/95/27a7a136c0022f0be24d418d0550c846e963854915d8b916d2a3b7223501/ecl_twitter-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "6c7df0dfad93ec3d32e845ba1c64b640", "sha256": "dd26ee82e5451ec37e8580e8632cb010407bd2a0824913a4bf7eccba486b04ef" }, "downloads": -1, "filename": "ecl_twitter-1.0.7.tar.gz", "has_sig": false, "md5_digest": "6c7df0dfad93ec3d32e845ba1c64b640", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4646, "upload_time": "2012-04-13T02:28:52", "url": "https://files.pythonhosted.org/packages/97/ba/f9dd7617f5d5619f357455e9a86f6b0f5ba6c5b473519cf75920c4b0c8fc/ecl_twitter-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "1d65c79e95ea916ad4fca20b2df56c99", "sha256": "ec9b1f506a917f5b9acfa0a305633e2973ee0cfb89e59203a35a0a6243f7aa88" }, "downloads": -1, "filename": "ecl_twitter-1.0.8.tar.gz", "has_sig": false, "md5_digest": "1d65c79e95ea916ad4fca20b2df56c99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4805, "upload_time": "2012-04-13T21:35:42", "url": "https://files.pythonhosted.org/packages/ee/61/0c41c9402da815c9f64b233231a7e94e4e510b5af3deeca9946b039bce4c/ecl_twitter-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "0113b517cf20cdff9dd73a3de8ae7832", "sha256": "f671850da6ab5a3f94f1d8a6a17cda78505644c18aa82ccb5e6e45f73c1c2b94" }, "downloads": -1, "filename": "ecl_twitter-1.0.9.tar.gz", "has_sig": true, "md5_digest": "0113b517cf20cdff9dd73a3de8ae7832", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6667, "upload_time": "2012-04-14T19:26:47", "url": "https://files.pythonhosted.org/packages/bd/2d/3b48d3803d9e0ad8c8cdf7b2d577ae5edb999eb8fca3fdd0363ab51e02c5/ecl_twitter-1.0.9.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "fc4429557a31b96ee3d0641b35ae6b80", "sha256": "d950d17a38685d636a791a138392924805fc1f97407953ccbdda8d9bafade04b" }, "downloads": -1, "filename": "ecl_twitter-1.1.0.tar.gz", "has_sig": true, "md5_digest": "fc4429557a31b96ee3d0641b35ae6b80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7239, "upload_time": "2012-04-15T09:38:50", "url": "https://files.pythonhosted.org/packages/66/f2/80c794a657e2a62a5e1a5d5a2b9b1b638e154ba23c2ef09250f9b0055519/ecl_twitter-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "61f5ad52cc570c42796c453422ab7166", "sha256": "e5a558e8a7b2acb4fe1a95760adbbc8d9788a5b7d9b5f2ba4c597ae9c62d81db" }, "downloads": -1, "filename": "ecl_twitter-1.2.0.tar.gz", "has_sig": true, "md5_digest": "61f5ad52cc570c42796c453422ab7166", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7255, "upload_time": "2012-04-16T07:53:06", "url": "https://files.pythonhosted.org/packages/0c/32/93ebbfc03a20a7476d37b0d8d09bf45840e35f9768948de29819a1b8929c/ecl_twitter-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "d12458bee389416ca9bd92fbf5e02b74", "sha256": "b74bf46b038a339e477ca1106be2e218846554c85cc642b37fa1257f09fcfa16" }, "downloads": -1, "filename": "ecl_twitter-1.2.1.tar.gz", "has_sig": true, "md5_digest": "d12458bee389416ca9bd92fbf5e02b74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7278, "upload_time": "2012-06-06T21:53:24", "url": "https://files.pythonhosted.org/packages/26/b9/a5d1d214f090423f5f9a3b4e89d693bf968e0f4413481c462cfbf21b8e8f/ecl_twitter-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "4e9ed71db36f989e585aeaa937388329", "sha256": "6dd0af1546fd8531b92681533d0df3c5608dbe83b71fff3921e48e2459f3765a" }, "downloads": -1, "filename": "ecl_twitter-1.2.2.tar.gz", "has_sig": true, "md5_digest": "4e9ed71db36f989e585aeaa937388329", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7289, "upload_time": "2012-06-07T20:59:46", "url": "https://files.pythonhosted.org/packages/96/9d/b2bee0b662d8b73d3b4022bdcd078cd367fa8ce98a5abc50cb42316d3bec/ecl_twitter-1.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4e9ed71db36f989e585aeaa937388329", "sha256": "6dd0af1546fd8531b92681533d0df3c5608dbe83b71fff3921e48e2459f3765a" }, "downloads": -1, "filename": "ecl_twitter-1.2.2.tar.gz", "has_sig": true, "md5_digest": "4e9ed71db36f989e585aeaa937388329", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7289, "upload_time": "2012-06-07T20:59:46", "url": "https://files.pythonhosted.org/packages/96/9d/b2bee0b662d8b73d3b4022bdcd078cd367fa8ce98a5abc50cb42316d3bec/ecl_twitter-1.2.2.tar.gz" } ] }