Skip to main content

Fetches and converts data between Facebook, Google+, Instagram, and Twitter native APIs, ActivityStreams, microformats2 HTML and JSON, Atom, and more.

Project description

|Granary|

This is a library and REST API that fetches and converts social network
data between a wide variety of formats:
- Facebook, Google+, Instagram, and Twitter native APIs
- `ActivityStreams <http://activitystrea.ms/>`__
- `microformats2 <http://microformats.org/wiki/microformats2>`__ HTML
- `microformats2 <http://microformats.org/wiki/microformats2>`__ JSON
- `Atom <http://atomenabled.org/>`__
- XML

You can try it out with these interactive demos:

http://facebook-activitystreams.appspot.com/
http://twitter-activitystreams.appspot.com/
http://instagram-activitystreams.appspot.com/

`Check out the docs for more! <https://github.com/snarfed/granary>`__

License: This project is placed in the public domain.


Using
-----

The library and REST API are both based on the
`OpenSocial Activity Streams service <http://opensocial-resources.googlecode.com/svn/spec/2.0.1/Social-API-Server.xml#ActivityStreams-Service>`__.

Let's start with an example. This code using the library:

.. code:: python

from granary import twitter
...
tw = twitter.Twitter(ACCESS_TOKEN_KEY, ACCESS_TOKEN_SECRET)
tw.get_activities(group_id='@friends')

is equivalent to this ``HTTP GET`` request:

::

https://twitter-activitystreams.appspot.com/@me/@friends/@app/
?access_token_key=ACCESS_TOKEN_KEY&access_token_secret=ACCESS_TOKEN_SECRET

They return the authenticated user's Twitter stream, ie tweets from the
people they follow. Here's the JSON output:

.. code:: json

{
"itemsPerPage": 10,
"startIndex": 0,
"totalResults": 12
"items": [{
"verb": "post",
"id": "tag:twitter.com,2013:374272979578150912"
"url": "http://twitter.com/evanpro/status/374272979578150912",
"content": "Getting stuff for barbecue tomorrow. No ribs left! Got some nice tenderloin though. (@ Metro Plus Famille Lemay) http://t.co/b2PLgiLJwP",
"actor": {
"username": "evanpro",
"displayName": "Evan Prodromou",
"description": "Prospector.",
"url": "http://twitter.com/evanpro",
},
"object": {
"tags": [{
"url": "http://4sq.com/1cw5vf6",
"startIndex": 113,
"length": 22,
"objectType": "article"
}, ...],
},
}, ...]
...
}

`Check out the docs for more! <https://github.com/snarfed/granary>`__

Project details


Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page