source: perl/modules/Facebook/README @ 68fa539

Last change on this file since 68fa539 was 68fa539, checked in by Edward Z. Yang <ezyang@mit.edu>, 10 years ago
Add autocomplete and wall-posting support. Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
  • Property mode set to 100644
File size: 2.3 KB
Line 
1NAME
2  Facebook.par - Facebook support for BarnOwl
3
4DESCRIPTION
5  The Facebook module implements Facebook support for BarnOwl.
6
7SYNOPSIS
8  (1) Create an empty file ~/.owl/facebook (you can use the command
9  `touch ~/.owl/facebook`), in order to enable the module.
10
11  (2) Run ":reload-module Facebook" inside BarnOwl.
12
13  (3) Follow the instructions in the admin message.  BarnOwl will
14  ask you to log in via an OAuth URL, and run ':facebook-auth'
15  with the resulting URL.  It will then ask you to record the
16  resulting access token in your ~/.owl/facebook file, so you do
17  not have to login on subsequent BarnOwl sesions.
18
19  This token is valid until you change your
20  Facebook password or you revoke permissions for Barnowl at:
21    http://www.facebook.com/settings/?tab=applications&app_id=235537266461636
22
23  (4) Start receiving wall updates in Barnowl!
24      You can post updates with the ":facebook" command.
25
26POLLING
27  Facebook.par polls for normal messages once a minute. To disable
28  polling, you can unset the 'facebook:poll' variable in BarnOwl.
29
30TODO
31  * Polling Facebook is pretty slow (on order of a second or more),
32    and blocks the entire BarnOwl interface.  We need to confront
33    Perl's threading demon.
34  * No messaging support. (We'll add it when Facebook makes the new endpoint.)
35  * Smarter name de-duplication (see code comments for details.)
36  * Grep for XXX and TODO for more work items.
37
38TECHNICAL NOTES
39  This module uses 100% undeprecated Facebook Graph API, and should be
40  an interesting case study of how to implement a desktop application in
41  the new Facebook world order.  In particular, we do not use the old
42  infinite session keys trick described in
43  <http://www.emcro.com/blog/2009/01/facebook-infinite-session-keys-no-more/>,
44  instead, we use offline_access to get non-expiring tokens.
45
46  If we decide to extend our permissions to include read_friendlists
47  (for filtering) and rsvp_event (RSVP from BarnOwl), we will need
48  to make sure the UI for upgrading is correct.
49
50  We'll be rolling our own version of Facebook::Graph, as the original
51  uses the synchronous LWP::UserAgent, and we'd like our web requests
52  not to block the user interface.  Furthermore, Facebook::Graph doesn't
53  actually use any of the features of LWP::UserAgent, so we may be able
54  to use a simpler module AnyEvent::HTTP.
Note: See TracBrowser for help on using the repository browser.