source: perl/modules/Facebook/README @ 67f6d7d

Last change on this file since 67f6d7d was 4724f1a, checked in by Edward Z. Yang <>, 13 years ago
Note about async Facebook::Graph. Signed-off-by: Edward Z. Yang <>
  • Property mode set to 100644
File size: 2.3 KB
2  Facebook.par - Facebook support for BarnOwl
5  The Facebook module implements Facebook support for BarnOwl.
8  (1) Create an empty file ~/.owl/facebook (you can use the command
9  `touch ~/.owl/facebook`), in order to enable the module.
11  (2) Run ":reload-module Facebook" inside BarnOwl.
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.
19  This token is valid until you change your
20  Facebook password or you revoke permissions for Barnowl at:
23  (4) Start receiving wall updates in Barnowl!
24      You can post updates with the ":facebook" command.
27  Facebook.par polls for normal messages once a minute. To disable
28  polling, you can unset the 'facebook:poll' variable in BarnOwl.
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  * Need to detect if you have two friends with the same name and
35    disambiguate if so.
36  * No messaging support.
37  * No auto-completion support.
38  * No posting to an arbitrary user's wall.
39  * See code comments for more work items!
42  This module uses 100% undeprecated Facebook Graph API, and should be
43  an interesting case study of how to implement a desktop application in
44  the new Facebook world order.  In particular, we do not use the old
45  infinite session keys trick described in
46  <>,
47  instead, we use offline_access to get non-expiring tokens.
49  If we decide to extend our permissions to include read_friendlists
50  (for filtering) and rsvp_event (RSVP from BarnOwl), we will need
51  to make sure the UI for upgrading is correct.
53  We'll be rolling our own version of Facebook::Graph, as the original
54  uses the synchronous LWP::UserAgent, and we'd like our web requests
55  not to block the user interface.  Furthermore, Facebook::Graph doesn't
56  actually use any of the features of LWP::UserAgent, so we may be able
57  to use a simpler module AnyEvent::HTTP.
Note: See TracBrowser for help on using the repository browser.