Ignore:
Timestamp:
Sep 20, 2011, 11:15:32 PM (10 years ago)
Author:
Edward Z. Yang <ezyang@mit.edu>
Branches:
master, release-1.9
Children:
a4ae221
Parents:
65c2b3c
git-author:
Edward Z. Yang <ezyang@mit.edu> (06/22/11 21:53:17)
git-committer:
Edward Z. Yang <ezyang@mit.edu> (09/20/11 23:15:32)
Message:
Improve docs, error handling and refactor.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
File:
1 edited

Legend:

Unmodified
Added
Removed
  • perl/modules/Facebook/README

    r8b62088 r01d186f  
    2222
    2323  (4) Start receiving wall updates in Barnowl!
    24       You can post updates with the ":facebook" command.
     24  You can post updates with the ":facebook" command.
     25
     26INFELICITIES
     27  * Polling Facebook is pretty slow (on order of a second or more),
     28    and blocks the entire BarnOwl interface.  We have a plan for
     29    fixing this, which involves creating an async version of
     30    Facebook::Graph.  I have been in contact with the original
     31    author JT Smith about this.
     32
     33  * BarnOwl will not receive all comments for news feed items, only
     34    comments for items that were recently published.  There is not
     35    currently a way to see starks for conversations that you did not
     36    participate in, and the only way to see starks for conversations
     37    you did participate in are Facebook's email notifications.  (This
     38    is a deficiency of the Facebook API, see http://bugs.developers.facebook.net/show_bug.cgi?id=18594.)
     39
     40  * By default, BarnOwl will not display posts from organizations (such
     41    as bands you have liked) or application invites.  This is a
     42    judgment of taste from the original author.  This is not currently
     43    configurable.
     44
     45  * Users and applications that you have hidden via the Facebook
     46    web interface will show up in the BarnOwl stream.  (This appears to
     47    be a deficiency of the Facebook API, see
     48    http://stackoverflow.com/questions/6405364/facebook-api-access-hide-posts-from-settings).
     49    Users are encouraged to work around this by using traditional Zephyr
     50    filters.
     51
     52  * We are missing support for some notable features, including
     53    messaging (Facebook has not publically released the API for this,
     54    though we could sign up for the whitelist), events (seeing
     55    unresponded to events requires a custom FQL query
     56    http://stackoverflow.com/questions/4752967/facebook-api-only-returns-25-events-max),
     57    notifications (not supported in Graph API yet).
     58
     59WISHLIST
     60  * Smarter name de-duplication (see Facebook/Handle.pm for details.)
     61  * URL minification.
     62  * Multiple accounts.  (Does anyone do this? I don't think so...)
     63  * Zephyr class mirroring.
    2564
    2665POLLING
    2766  Facebook.par polls for normal messages once a minute. To disable
    2867  polling, you can unset the 'facebook:poll' variable in BarnOwl.
    29 
    30 TODO
    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 
    38 TECHNICAL 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 TracChangeset for help on using the changeset viewer.