{ "info": { "author": "Johannes Gorset", "author_email": "jgorset@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7" ], "description": "Facepy\n======\n\n.. image:: https://secure.travis-ci.org/jgorset/facepy.png?branch=master\n\nFacepy makes it really easy to interact with Facebook's Graph API.\n\nUsage\n-----\n\n::\n\n from facepy import GraphAPI\n\n # Initialize the Graph API with a valid access token (optional,\n # but will allow you to do all sorts of fun stuff).\n graph = GraphAPI(oauth_access_token)\n\n # Get my latest posts\n graph.get('me/posts')\n\n # Post a photo of a parrot\n graph.post(\n path = 'me/photos',\n source = open('parrot.jpg', 'rb')\n )\n\nFacepy can do more than reading your latest posts and posting photographs of parrots, but you'll have to\n`read the documentation `_ to find out how.\n\nInstallation\n------------\n\n::\n\n $ pip install facepy\n\nContribute\n----------\n\n* Fork `the repository `_.\n* Do your thing (preferably on a feature branch).\n* Write a test that demonstrates that the bug was fixed or the feature works as expected.\n* Send a pull request and bug me until I merge it!\n\nI love you\n----------\n\nJohannes Gorset made this. You should `tweet me `_ if you can't get it\nto work. In fact, you should tweet me anyway.\n\nI love Hyper\n------------\n\nI work at Hyper with a bunch of awesome folks who are all every bit as passionate about good code\nas myself. If you're using this library, we probably want to hire you.\n\n\n# Change Log\nAll notable changes to this project will be documented in this file.\n\n## Unreleased\n\n## 1.0.4 - 2014-09-28\n### Added\n- Facepy now proxies the error message from Facebook for 5XX responses.\n- Facepy now raises `FacebookError` on any response in the 5XX range.\n\n## 1.0.3 - 2014-06-17\n### Added\n- `FacebookError`, `HTTPError`, `OAuthError` and `SignedRequestError` are now available\nfrom the `facepy` module for convenience.\n- `GraphAPI` now raises `FacebookError` upon receiving HTTP 500 from Facebook.\n\n## 1.0.2 - 2014-06-10\n### Added\n- `GraphAPI` now accepts an argument `timeout`, which can be either `None` or an\ninteger describing how many seconds to wait for a response.\n\n## 1.0.1 - 2014-05-22\n### Fixed\n- Fixed an issue where six would cause an `ImportError` unless already\ninstalled. It is now a direct dependency.\n\n## 1.0.0 - 2014-05-22\n### Added\n- `GraphAPI` now supports securing Graph API requests with application secret proofs.\n- `GraphAPI#post` now supports user-generated images.\n\n### Fixed\n- The last bit of the tuple returned from `get_extended_access_token` is now `None`\nif the access token won't expire.\n- `GraphAPI#batch` can now handle more than 50 requests at a time.\n- Fixed a bug that caused unicode URLs to fail.\n\n## 0.9.0 - 2014-02-12\n### Added\n- Changed `GraphAPI` methods to return `decimal.Decimal` instances for floating-point\nnumbers instead of `float`, which can cause precision losses not acceptable for\nfinancial operations.\n- Nested dictionaries, lists and sets are now automatically encoded as JSON.\n- You may now elect to not verify Facebook's SSL certificate.\n- You may now substitute colons with underscores in keys such as `fb:explicitly_shared`.\n- Facepy is now compatible with Python 3.\n\n### Fixed\n- Fixed a bug that caused parsing signed requests to fail when the `user` key\nis not present.\n\n## 0.8.4 - 2012-11-13\n### Fixed\n- Fixed a bug that caused a KeyError for signed requests that were missing\nsome keys for its \"page\" attribute.\n\n## 0.8.3 - 2012-10-04\n### Added\n- You may now extend access tokens with `get_extended_access_token`.\n\n### Fixed\n- Fixed a bug that caused batch requests with a body to fail.\n- Fixed a bug that caused paths that started with a slash to fail.\n- Fixed a bug that caused exception messages to be omitted.\n\n## 0.8.2 - 2012-07-03\n### Added\n- Facepy exceptions may now be pickled.\n\n## 0.8.1 - 2012-07-02\n### Fixed\n- Fixed a bug that caused pagination to stop prematurely.\n\n## 0.8.0 - 2012-06-22\n### Added\n- You may now query application access tokens with `get_application_access_token`.\n- `SignedRequest.parse` now returns a dictionary describing the payload of the signed request\ninstead of a `SignedRequest` instance.\n- `SignedRequest.__init__` now accepts arguments `signed_request` and `application_secret_key`\nand no longer facilitates for constructing arbitrary signed requests.\n- `SignedRequest#generate` no longer requires the provision of `application_secret_key`.\n- `GraphAPI` now supports retries for `get`, `post`, `delete`, `search` and `fql`.\n- `GraphAPI#get` is now more intelligent about pagination and should no longer query Facebook for another page\nof results if the current page has less elements than `limit`.\n\n### Removed\n- `SignedRequest#oauth_token` and `SignedRequest.OAuthToken` have been removed (deprecated since v0.6).\n\n### Fixed\n- Fixed a bug that caused some exceptions to be returned rather than raised.\n\n## 0.7.0 - 2012-06-13\n### Added\n- You may now access the original data of the signed request from `SignedRequest#raw`.\n- You may now issue FQL queries with `GraphAPI#fql`.\n- `FacebookError` exceptions yielded from `GraphAPI#batch` now include the request that\nproduced the error.\n\n### Fixed\n- Fixed a bug that caused `GraphAPI#batch` to crash upon receiving legacy errors from Facebook.\n\n## 0.6.9 - 2012-05-27\n### Added\n- Facepy will now raise `OAuthError` for authorization-related errors.\n- Facepy will now reuse the connection to Facebook.\n\n## 0.6.8 - 2012-04-25\n### Fixed\n- Fixed a bug that caused a KeyError upon parsing errors without an error code.\n\n## 0.6.7 - 2012-04-23\n### Added\n- Facepy now raises `GraphAPI.HTTPError` for requests whose transport failed,\nand `GraphAPI.FacebookError` for requests that produced an error in Facebook's API.\n\n### Fixed\n- Fixed a bug that caused some errors to be ignored.\n- Fixed a bug that caused an error for empty batch responses.\n\n## 0.6.6 - 2012-03-28\n### Added\n- Facepy now supports batch requests.\n\n## 0.6.5 - 2012-03-09\n### Added\n- Updated requests.\n\n## 0.6.4 - 2012-01-16\n### Fixed\n- Fixed a bug that caused `SignedRequest.User#has_authorized_application` to be incorrect for\nsigned requests with an user id, but no OAuth Token.\n- Fixed a bug that caused queries that returned 3xx status codes to yield a blank string\n\n## 0.6.3 - 2012-01-12\n### Fixed\n- Fixed a bug that caused installation to fail in some circumstances.\n\n## 0.6.2 - 2012-01-10\n### Fixed\n- Fixed a bug that caused a KeyError upon parsing a signed request that didn't include the user's age.\n\n## 0.6.1 - 2012-01-06\n### Fixed\n- Fixed a bug that caused a NameError upon providing a list of strings as a Graph API parameter.\n\n## 0.6.0 - 2012-01-05\n### Added\n- Search results may now be paged.\n- `facepy.VERSION` is now `facepy.__version__`\n\n## 0.5.1 - 2011-12-03\n### Added\n- It is now considerably easier to create signed requests programmatically.\n\n## 0.5.0 - 2011-11-07\n### Added\n- Facepy now returns the complete API response instead of just its \"data\" attribute.\n\n## 0.4.2 - 2011-11-03\n### Added\n- Facepy is now compatible with Python 2.4.\n\n### Fixed\n- Fixed a bug that caused a KeyError if the user's locale or country is missing from the signed request.\n\n## 0.4.1 - 2011-11-02\n### Fixed\n- Fixed a bug that caused a TypeError upon parsing signed requests in unicode.\n\n## 0.4.0 - 2011-11-02\n### Added\n- Added support for parsing and reverse-engineering signed requests.\n- Added support for file-like objects in POST and PUT.\n\n## 0.3.1 - 2011-09-17\n### Fixed\n- Fixed a bug that prevented the 'page' argument to GraphAPI#get from working\ncorrectly.\n\n## 0.3.0 - 2011-09-16\n### Added\n- GraphAPI#get now has a new argument 'page', which returns a generator\nthat iterates over each page of results.\n\n## 0.2.3 - 2011-08-15\n### Added\n- The GraphAPI class may now be initialized by signed request.\n\n## 0.2.2 - 2011-05-26\n### Fixed\n- Fix a bug that caused non-JSON data (e.g. pictures) to raise a ValueError.\n\n## 0.2.1 - 2011-05-10\n### Fixed\n- Fix a bug that caused a TypeError if the 'path' argument is an integer.\n\n## 0.2.0 - 2011-05-10\n### Added\n- Exceptions have been moved.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/jgorset/facepy", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "facepy-pozytywnie", "package_url": "https://pypi.org/project/facepy-pozytywnie/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/facepy-pozytywnie/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/jgorset/facepy" }, "release_url": "https://pypi.org/project/facepy-pozytywnie/1.0.5/", "requires_dist": null, "requires_python": null, "summary": "Facepy makes it really easy to interact with Facebook's Graph API", "version": "1.0.5" }, "last_serial": 3184833, "releases": { "1.0.3": [ { "comment_text": "", "digests": { "md5": "a54e6578350fb806b0c8ab7f2fbdff7d", "sha256": "06f1262c942cb58c42566d67509d3826060e2902856467d499c1ca6f7d184bf2" }, "downloads": -1, "filename": "facepy-pozytywnie-1.0.3.tar.gz", "has_sig": false, "md5_digest": "a54e6578350fb806b0c8ab7f2fbdff7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13385, "upload_time": "2014-07-22T08:41:08", "url": "https://files.pythonhosted.org/packages/3a/e8/3cd3e009fefbb32b954aa7ce6ace37113236d78e5c8aa8faf1043d6fc9c8/facepy-pozytywnie-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "a7977b819a044bbdf03e5a1184cd16f9", "sha256": "2ea10beea0693534cf2171891fae8fe404861685b4f40fdddf712e951d6bc32f" }, "downloads": -1, "filename": "facepy-pozytywnie-1.0.4.tar.gz", "has_sig": false, "md5_digest": "a7977b819a044bbdf03e5a1184cd16f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13419, "upload_time": "2014-07-23T11:57:43", "url": "https://files.pythonhosted.org/packages/31/58/0c287def2babc14d6116bd7b0c881e8725d9bb870cf63ab2823cf3ba7eaf/facepy-pozytywnie-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "4a11e123f3299a3c6d41f6e9dc19d34f", "sha256": "e5f6f4cac834c1ca989c36ed6275838d6909ec9b8f62144bae8545d235684730" }, "downloads": -1, "filename": "facepy-pozytywnie-1.0.5.tar.gz", "has_sig": false, "md5_digest": "4a11e123f3299a3c6d41f6e9dc19d34f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12567, "upload_time": "2014-12-11T14:11:26", "url": "https://files.pythonhosted.org/packages/d2/10/d81fe67ad2218643e719dd734fb8129ca85b89a31bedce05ef3319f2a63e/facepy-pozytywnie-1.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4a11e123f3299a3c6d41f6e9dc19d34f", "sha256": "e5f6f4cac834c1ca989c36ed6275838d6909ec9b8f62144bae8545d235684730" }, "downloads": -1, "filename": "facepy-pozytywnie-1.0.5.tar.gz", "has_sig": false, "md5_digest": "4a11e123f3299a3c6d41f6e9dc19d34f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12567, "upload_time": "2014-12-11T14:11:26", "url": "https://files.pythonhosted.org/packages/d2/10/d81fe67ad2218643e719dd734fb8129ca85b89a31bedce05ef3319f2a63e/facepy-pozytywnie-1.0.5.tar.gz" } ] }