| 
									
										
										
										
											2010-03-01 22:58:27 -08:00
										 |  |  | Twitter Bridge Plugin | 
					
						
							|  |  |  | ===================== | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-20 06:05:35 +00:00
										 |  |  | This Twitter "bridge" plugin allows you to integrate your StatusNet | 
					
						
							|  |  |  | instance with Twitter.  Installing it will allow your users to: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-01 21:34:50 -08:00
										 |  |  |     - automatically post notices to their Twitter accounts | 
					
						
							| 
									
										
										
										
											2009-10-20 06:05:35 +00:00
										 |  |  |     - 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) | 
					
						
							| 
									
										
										
										
											2010-03-01 22:41:07 -08:00
										 |  |  |     - allow users to authenticate using Twitter ('Sign in with Twitter') | 
					
						
							| 
									
										
										
										
											2009-10-20 06:05:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | Installation | 
					
						
							|  |  |  | ------------ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-01 22:41:07 -08:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2010-03-02 16:49:29 -08:00
										 |  |  | plugin, or set it using the Twitter administration panel**. | 
					
						
							| 
									
										
										
										
											2009-10-20 06:05:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | When registering your application with Twitter set the type to "Browser" | 
					
						
							|  |  |  | and your Callback URL to: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     http://example.org/mublog/twitter/authorization | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-01 22:41:07 -08:00
										 |  |  | (Change "example.org" to your site domain and "mublog" to your site | 
					
						
							|  |  |  | path.) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The default access type should be "Read & Write". | 
					
						
							| 
									
										
										
										
											2009-10-20 06:05:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-01 21:34:50 -08:00
										 |  |  | To enable the plugin, add the following to your config.php: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     addPlugin( | 
					
						
							|  |  |  |         'TwitterBridge', | 
					
						
							|  |  |  |         array( | 
					
						
							|  |  |  |             'consumer_key'    => 'YOUR_CONSUMER_KEY', | 
					
						
							|  |  |  |             'consumer_secret' => 'YOUR_CONSUMER_SECRET' | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-02 16:49:29 -08:00
										 |  |  | 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.) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-20 06:05:35 +00:00
										 |  |  | * Note: The plugin will still push notices to Twitter for users who | 
					
						
							| 
									
										
										
										
											2010-03-01 22:41:07 -08:00
										 |  |  |   have previously set up the Twitter bridge using their Twitter name and | 
					
						
							|  |  |  |   password under an older version of StatusNet, but all new Twitter | 
					
						
							| 
									
										
										
										
											2009-10-20 06:05:35 +00:00
										 |  |  |   bridge connections will use OAuth. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-02 16:53:37 -08:00
										 |  |  | ** For multi-site setups you can also set a global consumer key and | 
					
						
							| 
									
										
										
										
											2010-03-02 16:49:29 -08:00
										 |  |  |    secret.  The Twitter bridge will fall back on the global key pair if | 
					
						
							|  |  |  |    it can't find a local pair, e.g.: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-18 17:00:37 -07:00
										 |  |  |    $config['twitter']['global_consumer_key']    = 'YOUR_CONSUMER_KEY'; | 
					
						
							|  |  |  |    $config['twitter']['global_consumer_secret'] = 'YOUR_CONSUMER_SECRET'; | 
					
						
							| 
									
										
										
										
											2010-03-02 16:49:29 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-01 22:58:27 -08:00
										 |  |  | Administration panel | 
					
						
							|  |  |  | -------------------- | 
					
						
							| 
									
										
										
										
											2010-03-01 22:41:07 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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 enable | 
					
						
							|  |  |  | the administration panel, you will need to add it to the list of active | 
					
						
							|  |  |  | administration panels.  You can do this via your config.php. E.g.: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $config['admin']['panels'][] = 'twitter'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | And to access it, you'll need to use a user with the "administrator" | 
					
						
							|  |  |  | role (see: scripts/userrole.php). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Sign in with Twitter | 
					
						
							|  |  |  | -------------------- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-01 22:58:27 -08:00
										 |  |  | With 0.9.0, StatusNet optionally allows users to register and | 
					
						
							| 
									
										
										
										
											2010-03-01 22:41:07 -08:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2010-03-01 22:58:27 -08:00
										 |  |  | disabled via the Twitter bridge administration panel, or by adding the | 
					
						
							|  |  |  | following line to your config.php: | 
					
						
							| 
									
										
										
										
											2010-03-01 22:41:07 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     $config['twitter']['signin'] = false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Daemons | 
					
						
							| 
									
										
										
										
											2009-10-20 06:05:35 +00:00
										 |  |  | ------- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-01 22:41:07 -08:00
										 |  |  | For friend syncing and importing Twitter tweets, running two | 
					
						
							|  |  |  | additional daemon scripts is necessary: synctwitterfriends.php and | 
					
						
							|  |  |  | twitterstatusfetcher.php. | 
					
						
							| 
									
										
										
										
											2009-10-20 06:05:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-01 22:41:07 -08:00
										 |  |  | In the daemons subdirectory of the plugin are three scripts: | 
					
						
							| 
									
										
										
										
											2009-10-20 06:05:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | * 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. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-01 22:41:07 -08:00
										 |  |  | The plugin will start this daemon when you run scripts/startdaemons.sh. | 
					
						
							| 
									
										
										
										
											2009-10-20 06:05:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | * Importing statuses from Twitter (daemons/twitterstatusfetcher.php) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-01 22:41:07 -08:00
										 |  |  | 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: | 
					
						
							| 
									
										
										
										
											2009-10-20 06:05:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     $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 | 
					
						
							| 
									
										
										
										
											2010-03-01 22:41:07 -08:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2009-10-20 06:05:35 +00:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2010-03-01 22:58:27 -08:00
										 |  |  | for larger sites and sites that wish to improve performance the script | 
					
						
							| 
									
										
										
										
											2010-03-01 22:41:07 -08:00
										 |  |  | allows notices to be sent "offline" via a separate process. | 
					
						
							| 
									
										
										
										
											2009-10-20 06:05:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-01 22:41:07 -08:00
										 |  |  | StatusNet will automatically use the TwitterQueueHandler if you have | 
					
						
							| 
									
										
										
										
											2010-03-01 22:58:27 -08:00
										 |  |  | enabled the queuing subsystem.  See the "Queues and daemons" section of | 
					
						
							|  |  |  | the main README file for more information about how to do that. |