Simperium

This plugin contains easy-to-use API that uses WP HTTP API to send data to Simperium.

Author:Akeda Bagus (profile at wordpress.org)
WordPress version required:3.6
WordPress version tested:3.9.1
Plugin version:0.1.0
Added to WordPress repository:16-05-2014
Last updated:18-05-2014
Warning! This plugin has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.
Rating, %:0
Rated by:0
Plugin URI:https://github.com/gedex/wp-simperium
Total downloads:763
plugin download
Click to start download

This plugin is intended for developer to send data to Simperium. Followings are use cases in which this plugin might come in handy:

  1. You need post-processing (for instance pinging dozen web services after a post is published) without blocking request. In this case you call provided actions or helper methods, then you spawn long-live process (either from the same server or different server) that listens to changes from your Simperium bucket for post-processing.
  2. You need to log events that happen during request lifecycle under restricted circumstances (for instance it won't possible to access log files on the server).

How to use it

Once this plugin is installed and activated, you can send data to Simperium in following ways:

  1. Via action hook: do_action( 'simperium_send_data', $bucket, $data ) or do_action( 'simperium_send_buffered_data', $bucket, $data ). The first hook, will send the $data immediately, while the later will send the data to buffer and will send all buffered data to Simperium at once after calling do_action( 'simperium_flush_buffer', $bucket ). If $bucket arg is provided, it only flushes buffered data that's targetted to $bucket.
  2. Via helper method: WP_Simperium::send_data( $bucket, $data ) or WP_Simperium::send_buffered_data( $bucket, $data ). To flush buffer, you call WP_Simperium::flush_buffer( $bucket ). Again, $bucket arg is optional.

The value of $data MUST BE in key-value array structure as nested structure is not supported by Simperium.

Before using the action hooks or helper methods, you need to supply Simperium app credentials via simperium_config filter, for example:

add_filter( 'simperium_config', function() {
    return array(
        'app_id'  => 'YOUR_APP_ID',
        'api_key' => 'YOUR_API_KEY',
    )
} );

In addition to app_id and api_key you can pass username and/or access_token to the array config. If access_token is omitted, the plugin will request access_token from Simperium with provided username (if exists) or get_bloginfo( 'admin_email' ) and store the info in option. Subsequent calls will read access_token information from option, but can be bypassed by providing access_token in array config. It's preferred to supply your own access_token or username that hasn't registered yet. Please keep in mind that token has 30 days life span. If you're using access_token that's automatically retrieved by the plugin, you don't need to worry as scheduled event will refresh the token per 29 days.

Sender Examples

I've created sender examples plugin that you can use as a starting point, though it will run without any customization. Currently it has following features:

  • Send post data once post status is transitioned to public.
  • Send new comment.
  • More will come later..

Consumer Examples

I'm working to provide listener apps, written in PHP (stay tuned!), for now you can check Simperium examples and their awesome libraries.

Contributing

  • Development of this plugin is done on GitHub. Pull requests are always welcome.
  • For Sender apps feedback, please check its GitHub repo.
  • For Consumer apps feedback, please stay tuned!

FAQ
ChangeLog