| 
									
										
										
										
											2014-03-11 00:05:28 +01:00
										 |  |  | XMPP (eXtended Message and Presence Protocol, <http://xmpp.org/>) is the | 
					
						
							|  |  |  | federating instant-messaging protocol of the future. It is wildly used | 
					
						
							|  |  |  | all over the world by organisations, private individuals and everyone. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | GNU social allows you to receive and distribute messages via XMPP using | 
					
						
							|  |  |  | this plugin. To get it running, you must also use an active XMPP account. | 
					
						
							| 
									
										
										
										
											2010-01-23 01:25:27 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | Installation | 
					
						
							|  |  |  | ============ | 
					
						
							| 
									
										
										
										
											2014-03-11 00:05:28 +01:00
										 |  |  | Add an addPlugin call to your config.php with your settings. Please read | 
					
						
							|  |  |  | the "Pre-requisites" section of what is required for this to work. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Example | 
					
						
							|  |  |  | ------- | 
					
						
							|  |  |  | The example account "update@site.example" is hosted on a machine which | 
					
						
							|  |  |  | can be reached at the hostname "xmpp.site.example". | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | addPlugin('Xmpp', array( | 
					
						
							|  |  |  |     'user'      => 'update', | 
					
						
							|  |  |  |     'server'    => 'site.example', | 
					
						
							|  |  |  |     'host'      => 'xmpp.site.example', | 
					
						
							|  |  |  |     'password'  => '...', | 
					
						
							|  |  |  | )); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Pre-requisites | 
					
						
							|  |  |  | ============== | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 0. You may want to strongly consider setting up your own XMPP server. | 
					
						
							|  |  |  |    We highly recommend the XMPP server "Prosody" <https://prosody.im/> | 
					
						
							|  |  |  |    because it is actively developed and highly secure and efficient. It | 
					
						
							|  |  |  |    is of course also free software under the MIT license. The following | 
					
						
							|  |  |  |    three pages will help you get it running, even self-hosted at home: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       0.1 https://prosody.im/doc/dns | 
					
						
							|  |  |  |       0.2 https://prosody.im/doc/install | 
					
						
							|  |  |  |       0.3 https://prosody.im/doc/configure | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 1. You must register an XMPP user ID (JID) which is used to send and | 
					
						
							|  |  |  |    receive messages. Call it something like "update@site.example" or | 
					
						
							|  |  |  |    similar to hint at what the account is made for. You may register | 
					
						
							|  |  |  |    the account on any public server (jabber.org, jit.si, etc...) if  | 
					
						
							|  |  |  |    you cannot run one yourself. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    GNU social will not register anything for you, this must be done | 
					
						
							|  |  |  |    manually, preferrably using an XMPP client like Swift, Empathy, | 
					
						
							|  |  |  |    Jitsi or maybe even the commandline on your own server. With | 
					
						
							|  |  |  |    prosody, that'd be (perhaps prepended with 'sudo'): | 
					
						
							| 
									
										
										
										
											2010-01-23 01:25:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-11 00:05:28 +01:00
										 |  |  |       prosodyctl adduser update@site.example | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 2. Configure your site's XMPP variables, as described below in the | 
					
						
							|  |  |  |    Settings section below. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 3. Learn to use the GNU social daemons for processing notice queues, | 
					
						
							|  |  |  |    background checks and other processes which would be too slow to | 
					
						
							|  |  |  |    perform on an active site. Using XMPP requires the "imdaemon" to | 
					
						
							|  |  |  |    run, since a long-running XMPP connection is somewhat necessary. | 
					
						
							| 
									
										
										
										
											2013-10-19 12:19:00 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-23 01:25:27 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | Settings | 
					
						
							|  |  |  | ======== | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-11 00:05:28 +01:00
										 |  |  | Required | 
					
						
							|  |  |  | -------- | 
					
						
							|  |  |  | user        User part of the jid (like 'update') | 
					
						
							|  |  |  | server      Host part of the jid (like 'site.example') | 
					
						
							|  |  |  | password    The account's password. (your secret string) | 
					
						
							| 
									
										
										
										
											2010-01-23 01:25:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-11 00:05:28 +01:00
										 |  |  | Optional | 
					
						
							|  |  |  | -------- | 
					
						
							|  |  |  | resource    JID resource. Default: 'gnusocial' | 
					
						
							|  |  |  | encryption  TLS server? Default: true | 
					
						
							|  |  |  | host        Hostname for XMPP server? Default: same as server | 
					
						
							|  |  |  | port        XMPP server port. Default: 5222 | 
					
						
							|  |  |  | debug       Log extra debug info. Default: false | 
					
						
							|  |  |  | public      JIDs that should get the public feed (see "Public feed"). | 
					
						
							| 
									
										
										
										
											2013-10-19 12:19:00 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-11 00:05:28 +01:00
										 |  |  | Since we do not currently support DNS SRV record lookup, please note | 
					
						
							|  |  |  | that you may have to enter an alternative 'host' parameter. This is | 
					
						
							|  |  |  | the case when update@site.example is not handled by the direct _address_ | 
					
						
							|  |  |  | "site.example" but rather something like "xmpp.site.example". | 
					
						
							| 
									
										
										
										
											2013-10-19 12:19:00 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-11 00:05:28 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | Public feed | 
					
						
							|  |  |  | =========== | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | You can send *all* messages from your social networking site to a | 
					
						
							|  |  |  | third-party service using XMPP. This can be useful for providing | 
					
						
							|  |  |  | search, indexing, bridging, or other cool services. Maybe a text | 
					
						
							|  |  |  | display next to your coffee machine at work. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | To configure a downstream site to receive your public stream, add | 
					
						
							|  |  |  | their "JID" (Jabber ID) in the "public" array in your addPlugin call. | 
					
						
							|  |  |  | For example | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | addPlugin(array( | 
					
						
							|  |  |  |     [...] | 
					
						
							|  |  |  |     'public' => array('awesomebot@site.example'), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | As the Pre-requisites section says, please only try to configure this | 
					
						
							|  |  |  | with daemons running properly in the background. |