
Public Member Functions | |
| def | friendfeed_request |
Private Member Functions | |
| def | _oauth_consumer_token |
| def | _oauth_get_user_future |
| def | _on_friendfeed_request |
| def | _parse_user_response |
Static Private Attributes | |
| string | _OAUTH_ACCESS_TOKEN_URL = "https://friendfeed.com/account/oauth/access_token" |
| string | _OAUTH_AUTHORIZE_URL = "https://friendfeed.com/account/oauth/authorize" |
| _OAUTH_NO_CALLBACKS = True | |
| string | _OAUTH_REQUEST_TOKEN_URL = "https://friendfeed.com/account/oauth/request_token" |
| string | _OAUTH_VERSION = "1.0" |
FriendFeed OAuth authentication.
To authenticate with FriendFeed, register your application with
FriendFeed at http://friendfeed.com/api/applications. Then copy
your Consumer Key and Consumer Secret to the application
`~tornado.web.Application.settings` ``friendfeed_consumer_key``
and ``friendfeed_consumer_secret``. Use this mixin on the handler
for the URL you registered as your application's Callback URL.
When your application is set up, you can use this mixin like this
to authenticate the user with FriendFeed and get access to their feed::
class FriendFeedLoginHandler(tornado.web.RequestHandler,
tornado.auth.FriendFeedMixin):
@tornado.gen.coroutine
def get(self):
if self.get_argument("oauth_token", None):
user = yield self.get_authenticated_user()
# Save the user using e.g. set_secure_cookie()
else:
yield self.authorize_redirect()
The user object returned by `~OAuthMixin.get_authenticated_user()` includes the
attributes ``username``, ``name``, and ``description`` in addition to
``access_token``. You should save the access token with the user;
it is required to make requests on behalf of the user later with
`friendfeed_request()`.
| def tornado.auth.FriendFeedMixin._oauth_consumer_token | ( | self | ) | [private] |
Subclasses must override this to return their OAuth consumer keys. The return value should be a `dict` with keys ``key`` and ``secret``.
Reimplemented from tornado.auth.OAuthMixin.
| def tornado.auth.FriendFeedMixin._oauth_get_user_future | ( | self, | |
| access_token, | |||
| callback | |||
| ) | [private] |
Subclasses must override this to get basic information about the user. Should return a `.Future` whose result is a dictionary containing information about the user, which may have been retrieved by using ``access_token`` to make a request to the service. The access token will be added to the returned dictionary to make the result of `get_authenticated_user`. For backwards compatibility, the callback-based ``_oauth_get_user`` method is also supported.
Reimplemented from tornado.auth.OAuthMixin.
| def tornado.auth.FriendFeedMixin._on_friendfeed_request | ( | self, | |
| future, | |||
| response | |||
| ) | [private] |
| def tornado.auth.FriendFeedMixin._parse_user_response | ( | self, | |
| callback, | |||
| user | |||
| ) | [private] |
| def tornado.auth.FriendFeedMixin.friendfeed_request | ( | self, | |
| path, | |||
| callback, | |||
access_token = None, |
|||
post_args = None, |
|||
| args | |||
| ) |
Fetches the given relative API path, e.g., "/bret/friends"
If the request is a POST, ``post_args`` should be provided. Query
string arguments should be given as keyword arguments.
All the FriendFeed methods are documented at
http://friendfeed.com/api/documentation.
Many methods require an OAuth access token which you can
obtain through `~OAuthMixin.authorize_redirect` and
`~OAuthMixin.get_authenticated_user`. The user returned
through that process includes an ``access_token`` attribute that
can be used to make authenticated requests via this
method.
Example usage::
class MainHandler(tornado.web.RequestHandler,
tornado.auth.FriendFeedMixin):
@tornado.web.authenticated
@tornado.gen.coroutine
def get(self):
new_entry = yield self.friendfeed_request(
"/entry",
post_args={"body": "Testing Tornado Web Server"},
access_token=self.current_user["access_token"])
if not new_entry:
# Call failed; perhaps missing permission?
yield self.authorize_redirect()
return
self.finish("Posted a message!")
string tornado::auth.FriendFeedMixin::_OAUTH_ACCESS_TOKEN_URL = "https://friendfeed.com/account/oauth/access_token" [static, private] |
string tornado::auth.FriendFeedMixin::_OAUTH_AUTHORIZE_URL = "https://friendfeed.com/account/oauth/authorize" [static, private] |
tornado::auth.FriendFeedMixin::_OAUTH_NO_CALLBACKS = True [static, private] |
string tornado::auth.FriendFeedMixin::_OAUTH_REQUEST_TOKEN_URL = "https://friendfeed.com/account/oauth/request_token" [static, private] |
string tornado::auth.FriendFeedMixin::_OAUTH_VERSION = "1.0" [static, private] |