| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 | 
							- <?php
 
- /**
 
-  * This Service is provided as an example only. It doesn't do anything useful :)
 
-  */
 
- // Always extend Keyring_Service, or something else which extends it (e.g. Keyring_Service_OAuth1)
 
- class Keyring_Service_Example extends Keyring_Service {
 
- 	const NAME = 'example';
 
- 	const LABEL = 'Example Service';
 
- 	function __construct() {
 
- 		// If you need a custom __construct(), make sure to call the parent explicitly like this
 
- 		parent::__construct();
 
- 		// Optionally register methods (of this object) to handle the UI for different actions
 
- 		// action is in the format "keyring_{$service}_{request/verify}_ui".
 
- 		// These are optional, and are only required if you need the user to see/do something during
 
- 		// each step.
 
- 		add_action( 'keyring_example_request_ui', array( $this, 'request_ui' ) );
 
- 		add_action( 'keyring_example_verify_ui', array( $this, 'verify_ui' ) );
 
- 		// Enable "basic" UI for entering key/secret, which a lot of services require
 
- 		// add_action( 'keyring_example_manage_ui', array( $this, 'basic_ui' ) );
 
- 		// Optionally make this a service that we can communicate with *without*
 
- 		// requiring any sort of connection
 
- 		$this->requires_token( false );
 
- 	}
 
- 	/**
 
- 	 * Allows you to do things before any output has been sent to the browser.
 
- 	 * This means you can redirect to a remote site, another page etc if need be.
 
- 	 */
 
- 	function request_token() {
 
- 		// Nothing to do in this example
 
- 	}
 
- 	/**
 
- 	 * You can define how a token presents itself to the user here. For example for Twitter,
 
- 	 * we might show "@" . $screen_name.
 
- 	 *
 
- 	 * @param Keyring_Access_Token $token
 
- 	 * @return String for use in UIs etc that helps identify this specific token
 
- 	 */
 
- 	function get_display( Keyring_Access_Token $token ) {
 
- 		return $token->token;
 
- 	}
 
- 	/**
 
- 	 * See __construct() for details on how this is hooked in to handle the UI for
 
- 	 * during the request process.
 
- 	 */
 
- 	function request_ui() {
 
- 		Keyring::admin_page_header(); // Generic header which can be used (includes h2 header)
 
- 		echo '<p>This is just an example of how you could display some sort of custom UI if you needed to.</p>';
 
- 		echo '<p>Clicking the button below will generate a random token and store it as an example.</p>';
 
- 		echo '<p class="submitbox">';
 
- 		echo '<a href="' . esc_url( Keyring_Util::admin_url( 'example', array( 'action' => 'verify' ) ) ) . '" class="button-primary">' . __( 'Continue', 'keyring' ) . '</a>';
 
- 		echo '<a href="' . esc_attr( $_SERVER['HTTP_REFERER'] ) . '" class="submitdelete" style="margin-left:2em;">Abort</a>';
 
- 		echo '</p>';
 
- 		Keyring::admin_page_footer();
 
- 	}
 
- 	/**
 
- 	 * Allows you to do things before any output has been sent to the browser.
 
- 	 * This means you can redirect to a remote site, another page etc if need be.
 
- 	 */
 
- 	function verify_token() {
 
- 		// Generate a fake token and store it for this example
 
- 		$token = sha1( time() . mt_rand( 0, 1000 ) . time() );
 
- 		$meta = array( 'time' => time(), 'user' => get_current_user() );
 
- 		$this->store_token( $token, $meta );
 
- 	}
 
- 	/**
 
- 	 * This method will be used to make requests against this service. This is where
 
- 	 * you should handle injecting tokens/headers/etc required for authentication.
 
- 	 *
 
- 	 * @param string $url
 
- 	 * @param array $params additional parameters/headers for the request. Passed to WP_Http
 
- 	 * @return Response body as a string, or a Keyring_Error with the full WP_Http response object as the "message"
 
- 	 */
 
- 	function request( $url, array $params = array() ) {
 
- 		// empty
 
- 	}
 
- 	/**
 
- 	 * See __construct() for details on how this is hooked in to handle the UI for
 
- 	 * during the verify process.
 
- 	 */
 
- 	function verify_ui() {
 
- 		Keyring::admin_page_header();
 
- 		echo '<p>As an example, we just randomly generated a token and saved it in the token store. When you go back to your Connections listing, you should see it listed there under "Example Service".</p>';
 
- 		echo '<p><a href="' . esc_url( Keyring_Util::admin_url() ) . '" class="button-primary">' . __( 'Done', 'keyring' ) . '</a>';
 
- 		Keyring::admin_page_footer();
 
- 	}
 
- }
 
- // Always hook into keyring_load_services and use your init method to initiate a Service properly (singleton)
 
- add_action( 'keyring_load_services', array( 'Keyring_Service_Example', 'init' ) );
 
 
  |