42104612bd
It's less of a problem that one queue-item does not get handled, attention wise, than that the queue keeps filling up. The typical error raised here is 'already exists' so it's not even the case that the item won't get handled (it already has been). The real problem is that the queue_item table accepts duplicates (content-wise) which it should not. |
||
---|---|---|
.. | ||
actions | ||
classes | ||
daemons | ||
icons | ||
lib | ||
locale | ||
scripts | ||
README | ||
Sign-in-with-Twitter-lighter.png | ||
tweetctlqueuehandler.php | ||
twitter.php | ||
TwitterBridgePlugin.php |
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.