<?php
-/*
+/**
+ * Access token class.
+ *
+ * PHP version 5
+ *
+ * @category Action
+ * @package Laconica
+ * @author Evan Prodromou <evan@controlyourself.ca>
+ * @author Robin Millette <millette@controlyourself.ca>
+ * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
+ * @link http://laconi.ca/
+ *
* Laconica - a distributed open-source microblogging tool
- * Copyright (C) 2008, Controlez-Vous, Inc.
+ * Copyright (C) 2008, 2009, Control Yourself, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-if (!defined('LACONICA')) { exit(1); }
+if (!defined('LACONICA')) {
+ exit(1);
+}
-class AccesstokenAction extends Action {
- function handle($args) {
- parent::handle($args);
- common_server_error(_t('Not yet implemented.'));
- }
+require_once INSTALLDIR.'/lib/omb.php';
+
+/**
+ * Access token class.
+ *
+ * @category Action
+ * @package Laconica
+ * @author Evan Prodromou <evan@controlyourself.ca>
+ * @author Robin Millette <millette@controlyourself.ca>
+ * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
+ * @link http://laconi.ca/
+ */
+class AccesstokenAction extends Action
+{
+ /**
+ * Class handler.
+ *
+ * @param array $args query arguments
+ *
+ * @return boolean false if user doesn't exist
+ */
+ function handle($args)
+ {
+ parent::handle($args);
+ try {
+ common_debug('getting request from env variables', __FILE__);
+ common_remove_magic_from_request();
+ $req = OAuthRequest::from_request('POST', common_local_url('accesstoken'));
+ common_debug('getting a server', __FILE__);
+ $server = omb_oauth_server();
+ common_debug('fetching the access token', __FILE__);
+ $token = $server->fetch_access_token($req);
+ common_debug('got this token: "'.print_r($token, true).'"', __FILE__);
+ common_debug('printing the access token', __FILE__);
+ print $token;
+ } catch (OAuthException $e) {
+ $this->serverError($e->getMessage());
+ }
+ }
}