forked from GNUsocial/gnu-social
ca21f1da86
find one in the local config - Refuse to work at all if the consumer key and secret aren't set
146 lines
5.5 KiB
Plaintext
146 lines
5.5 KiB
Plaintext
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 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'
|
|
|
|
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 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
|
|
--------------------
|
|
|
|
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.
|