version may render your Laconica site unable to send or receive XMPP
messages.
- Facebook library. Used for the Facebook application.
+- PEAR Services_oEmbed. Used for some multimedia integration.
+- PEAR HTTP_Request is an oEmbed dependency.
+- PEAR Validat is an oEmbed dependency.e
+- PEAR Net_URL is an oEmbed dependency.2
A design goal of Laconica is that the basic Web functionality should
work on even the most restrictive commercial hosting services.
needs as a parameter the install path; if you run it from the
Laconica dir, "." should suffice.
- This will run six (for now) queue handlers:
+ This will run eight (for now) queue handlers:
* xmppdaemon.php - listens for new XMPP messages from users and stores
them as notices in the database.
of registered users.
* xmppconfirmhandler.php - sends confirmation messages to registered
users.
+ * twitterqueuehandler.php - sends queued notices to Twitter for user
+ who have opted to set up Twitter bridging.
+ * facebookqueuehandler.php - sends queued notices to Facebook for users
+ of the built-in Facebook application.
Note that these queue daemons are pretty raw, and need your care. In
particular, they leak memory, and you may want to restart them on a
# Update Twitter friends subscriptions every half hour
0,30 * * * * /path/to/php /path/to/laconica/scripts/synctwitterfriends.php>&/dev/null
+ Built-in Facebook Application
+ -----------------------------
+
+ Laconica's Facebook application allows your users to automatically
+ update their Facebook statuses with their latest notices, invite
+ their friends to use the app (and thus your site), view their notice
+ timelines, and post notices -- all from within Facebook. The application
+ is built into Laconica and runs on your host. For automatic Facebook
+ status updating to work you will need to enable queuing and run the
+ facebookqueuehandler.php daemon (see the "Queues and daemons" section
+ above).
+
+ Quick setup instructions*:
+
+ Install the Facebook Developer application on Facebook:
+
+ http://www.facebook.com/developers/
+
+ Use it to create a new application and generate an API key and secret.
+ Uncomment the Facebook app section of your config.php and copy in the
+ key and secret, e.g.:
+
+ # Config section for the built-in Facebook application
+ $config['facebook']['apikey'] = 'APIKEY';
+ $config['facebook']['secret'] = 'SECRET';
+
+ In Facebook's application editor, specify the following URLs for your app:
+
+ - Callback URL: http://example.net/mublog/facebook/
+ - Post-Remove URL: http://example.net/mublog/facebook/remove
+ - Post-Add Redirect URL: http://apps.facebook.com/yourapp/
+ - Canvas URL: http://apps.facebook.com/yourapp/
+
+ (Replace 'example.net' with your host's URL, 'mublog' with the path
+ to your Laconica installation, and 'yourapp' with the name of the
+ Facebook application you created.)
+
+ Additionally, Choose "Web" for Application type in the Advanced tab.
+ In the "Canvas setting" section, choose the "FBML" for Render Method,
+ "Smart Size" for IFrame size, and "Full width (760px)" for Canvas Width.
+ Everything else can be left with default values.
+
+ *For more detailed instructions please see the installation guide on the
+ Laconica wiki:
+
+ http://laconi.ca/trac/wiki/FacebookApplication
+
Sitemaps
--------
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
create table sms_carrier (
- id integer auto_increment primary key comment 'primary key for SMS carrier',
+ id integer primary key comment 'primary key for SMS carrier',
name varchar(64) unique key comment 'name of the carrier',
email_pattern varchar(255) not null comment 'sprintf pattern for making an email address from a phone number',
created datetime not null comment 'date this record was created',
emailnotifyfav tinyint default 1 comment 'Notify by email of favorites',
emailnotifynudge tinyint default 1 comment 'Notify by email of nudges',
emailnotifymsg tinyint default 1 comment 'Notify by email of direct messages',
+ emailnotifyattn tinyint default 1 comment 'Notify by email of @-replies',
emailmicroid tinyint default 1 comment 'whether to publish email microid',
language varchar(50) comment 'preferred language',
timezone varchar(50) comment 'timezone',
reply_to integer comment 'notice replied to (usually a guess)' references notice (id),
is_local tinyint default 0 comment 'notice was generated by a user',
source varchar(32) comment 'source of comment, like "web", "im", or "clientname"',
+ conversation integer comment 'id of root notice in this conversation' references notice (id),
index notice_profile_id_idx (profile_id),
+ index notice_conversation_idx (conversation),
index notice_created_idx (created),
FULLTEXT(content)
) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_bin;
created datetime not null comment 'date this record was created',
constraint primary key (tag, notice_id),
- index notice_tag_created_idx (created)
+ index notice_tag_created_idx (created),
+ index notice_tag_notice_id_idx (notice_id)
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
/* Synching with foreign services */
constraint primary key (tagger, tagged, tag),
index profile_tag_modified_idx (modified),
- index profile_tag_tagger_tag_idx (tagger, tag)
+ index profile_tag_tagger_tag_idx (tagger, tag),
+ index profile_tag_tagged_idx (tagged)
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
create table profile_block (
created datetime not null comment 'date this record was created',
modified timestamp comment 'date this record was modified',
- constraint primary key (group_id, profile_id)
+ constraint primary key (group_id, profile_id),
+ index group_member_profile_id_idx (profile_id),
+ index group_member_created_idx (created)
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;