gnu-social/plugins/TwitterBridge
Evan Prodromou 206c090688 Squashed commit of the following:
commit 7ef19ab918cc9805abb8d01e8220ae4ed63155d7
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jul 9 12:53:29 2012 -0400

    Show link to facebook account on profile block

    If you've logged in with Facebook, show a link to that account on the profile block.

commit b56967479c009d702150791944dbd80746ee3ba1
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jul 9 12:28:34 2012 -0400

    Add profile link from profile block to Twitter account

    Add a profile link to Twitter for accounts that are linked via Twitter login.

commit 181e441fd03c6034e737f6a3dae115557aa3e1aa
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jul 9 11:57:56 2012 -0400

    OpenID shows other account links

commit ef7357883dad9e34af2746e1c6a41ea826d7c992
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jul 9 11:53:12 2012 -0400

    Add a profile link for OpenIDs

    OpenID plugin now adds a profile link for each OpenID on the account.

commit 093d26b95bc453686d24c42f5a8f4739cb338fd2
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jul 9 11:15:18 2012 -0400

    Better array access

commit 49d47257efdcae2101b589a1f825872bdd70667c
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jul 9 10:57:16 2012 -0400

    Show list of other accounts in profile block

    We add a group of "rel-me" links to other user accounts on the Web.

    This is mostly useful for when you've used OpenID, Twitter, or
    Facebook login to associate a remote account.

    There's an extension to the profileblock recipe to show the links as
    little icons; there's a new hook in accountprofileblock to get such
    links from plugins.

    There's a modification to the base theme to show the icons correctly
    (I think).
2012-07-09 12:56:09 -04:00
..
daemons Remove Jabber stuff from Twitter daemon 2012-07-06 10:46:48 -04:00
icons Squashed commit of the following: 2012-07-09 12:56:09 -04:00
locale Localisation updates from http://translatewiki.net. 2012-06-30 11:10:38 +00:00
scripts Update Twitter calls to use documented API endpoints 2010-12-17 15:57:22 -08:00
Notice_to_status.php Update translator documentation. 2011-06-18 17:20:36 +02:00
README Update admin panel instructions in the TwitterBridge README 2011-07-13 23:06:29 +00:00
Sign-in-with-Twitter-lighter.png 'Sign in with Twitter' button img 2010-01-28 18:47:12 +00:00
TwitterBridgePlugin.php Squashed commit of the following: 2012-07-09 12:56:09 -04:00
Twitter_synch_status.php Update translator documentation. 2011-06-18 17:20:36 +02:00
jsonstreamreader.php Update translator documentation. 2011-06-18 17:20:36 +02:00
tweetctlqueuehandler.php Work in progress on twitter import daemon 2010-10-29 14:12:40 -07:00
tweetinqueuehandler.php TweetInQueueHandler: run incoming tweets through the queues to keep the Twitter streaming daemon clear. 2010-10-29 13:14:12 -07:00
twitter.php Enhance is_twitter_bound function from file plugins/TwitterBridge/twitter.php to deal with new-style replies from Web UI not using at-mention replies anymore, which caused all replies to be sent to Twitter. Definitely fix #3386 2011-12-18 12:13:42 +01:00
twitteradminpanel.php Update translator documentation. 2011-06-18 17:20:36 +02:00
twitterauthorization.php Make sure the session token gets output no matter what (whoops) 2011-09-17 15:50:13 -07:00
twitterimport.php Update translator documentation. 2011-06-18 17:20:36 +02:00
twitterlogin.php Update translator documentation. 2011-06-18 17:20:36 +02:00
twitteroauthclient.php Update Twitter calls to use documented API endpoints 2010-12-17 15:57:22 -08:00
twitterqueuehandler.php Quick hack to discard twitter broadcast queue items on failure *IF* config option 'twitter' 'ignore_errors' is on: 2010-12-07 12:11:37 -08:00
twittersettings.php Fix incorrect documentation. 2011-08-15 16:04:06 +02:00
twitterstreamreader.php newer sitestream host 2012-07-06 11:11:53 -04:00

README

Twitter Bridge Plugin
=====================

This Twitter "bridge" plugin allows you to integrate your StatusNet
instance with Twitter.  Installing it will allow your users to:

    - automatically post notices to their Twitter accounts
    - automatically subscribe to other Twitter users who are also using
      your StatusNet install, if possible (requires running a daemon)
    - import their Twitter friends' tweets (requires running a daemon)
    - allow users to authenticate using Twitter ('Sign in with Twitter')

Installation
------------

OAuth 1.0a (http://oauth.net) is used to to access protected resources
on Twitter (as opposed to HTTP Basic Auth)*.  To use Twitter bridging
you will need to register your instance of StatusNet as an application
on Twitter (http://twitter.com/apps).  During the application
registration process your application will be assigned a "consumer" key
and secret, which the plugin will use to make OAuth requests to Twitter.
You can either pass the consumer key and secret in when you enable the
plugin, or set it using the Twitter administration panel**.

When registering your application with Twitter set the type to "Browser"
and your Callback URL to:

    http://example.org/mublog/twitter/authorization

(Change "example.org" to your site domain and "mublog" to your site
path.)

The default access type should be "Read & Write".

To enable the plugin, add the following to your config.php:

    addPlugin(
        'TwitterBridge',
        array(
            'consumer_key'    => 'YOUR_CONSUMER_KEY',
            'consumer_secret' => 'YOUR_CONSUMER_SECRET'
        )
    );

or just:

   addPlugin('TwitterBridge');

if you want to set the consumer key and secret from the Twitter bridge
administration panel.  (The Twitter bridge wont work at all
unless you configure it with a consumer key and secret.)

* Note: The plugin will still push notices to Twitter for users who
  have previously set up the Twitter bridge using their Twitter name and
  password under an older version of StatusNet, but all new Twitter
  bridge connections will use OAuth.

** For multi-site setups you can also set a global consumer key and
   secret.  The Twitter bridge will fall back on the global key pair if
   it can't find a local pair, e.g.:

   $config['twitter']['global_consumer_key']    = 'YOUR_CONSUMER_KEY';
   $config['twitter']['global_consumer_secret'] = 'YOUR_CONSUMER_SECRET';

Upgrade
-------

If you've used the Twitter bridge plugin prior to version 0.9.5,
you'll need to run the new scripts/initialize_notice_to_status.php
script to initialize the new notice-to-status mapping file, which
greatly improves the integration between StatusNet and Twitter.

Administration panel
--------------------

As of StatusNet 0.9.0 there is a new administration panel that allows
you to configure Twitter bridge settings within StatusNet itself,
instead of having to specify them manually in your config.php.

To access it, you'll need to use a user with the "administrator"
role (see: scripts/userrole.php).

Sign in with Twitter
--------------------

With 0.9.0, StatusNet optionally allows users to register and
authenticate using their Twitter credentials via the "Sign in with
Twitter" pattern described here:

    http://apiwiki.twitter.com/Sign-in-with-Twitter

The option is _on_ by default when you install the plugin, but it can
disabled via the Twitter bridge administration panel, or by adding the
following line to your config.php:

    $config['twitter']['signin'] = false;

Daemons
-------

For friend syncing and importing Twitter tweets, running two
additional daemon scripts is necessary: synctwitterfriends.php and
twitterstatusfetcher.php.

In the daemons subdirectory of the plugin are three scripts:

* Twitter Friends Syncing (daemons/synctwitterfriends.php)

Users may set a flag in their settings ("Subscribe to my Twitter friends
here" under the Twitter tab) to have StatusNet attempt to locate and
subscribe to "friends" (people they "follow") on Twitter who also have
accounts on your StatusNet system, and who have previously set up a link
for automatically posting notices to Twitter.

The plugin will start this daemon when you run scripts/startdaemons.sh.

* Importing statuses from Twitter (daemons/twitterstatusfetcher.php)

You can allow uses to enable importing of your friends' Twitter
timelines either in the Twitter bridge administration panel or in your
config.php using the following configuration line:

    $config['twitterimport']['enabled'] = true;

The plugin will then start the TwitterStatusFetcher daemon along with the
other daemons when you run scripts/startdaemons.sh.

Additionally, you will want to set the integration source variable,
which will keep notices posted to Twitter via StatusNet from looping
back.  You can do this in the Twitter bridge administration panel, or
via config.php. The integration source should be set to the name of your
application _exactly_ as you specified it on the settings page for your
StatusNet application on Twitter, e.g.:

    $config['integration']['source'] = 'YourApp';

* TwitterQueueHandler (daemons/twitterqueuehandler.php)

This script sends queued notices to Twitter for user who have opted to
set up Twitter bridging.

It's not strictly necessary to run this queue handler, and sites that
haven't enabled queuing are still able to push notices to Twitter, but
for larger sites and sites that wish to improve performance the script
allows notices to be sent "offline" via a separate process.

StatusNet will automatically use the TwitterQueueHandler if you have
enabled the queuing subsystem.  See the "Queues and daemons" section of
the main README file for more information about how to do that.