forked from GNUsocial/gnu-social
03677f1a81
Our generated XRDS files contain 3 XRD elements: one for OAuth, one for OMB, and one to point to the other two. Auth_Yadis only gives us the last one, so we have to use it to find the other two, and then extract service URLs from them. Kind of fragile code, probably won't hold up under complicated topologies, and won't work at all if the XRDs are in another XRDS container. I tried to use XRDS filtering to get the top-priority version of XRDs, services, and URIs, but Laconica's output doesn't use any of that stuff and I don't particularly want to test it. darcs-hash:20080602174249-84dde-b7ffdf7f21afb5b734def70530fc305689da471d.gz
77 lines
2.4 KiB
PHP
77 lines
2.4 KiB
PHP
<?php
|
|
/*
|
|
* Laconica - a distributed open-source microblogging tool
|
|
* Copyright (C) 2008, Controlez-Vous, 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
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
if (!defined('LACONICA')) { exit(1); }
|
|
|
|
require_once('OAuth.php');
|
|
require_once(INSTALLDIR.'/lib/oauthstore.php');
|
|
|
|
define('OAUTH_NAMESPACE', 'http://oauth.net/core/1.0/');
|
|
define('OMB_NAMESPACE', 'http://openmicroblogging.org/protocol/0.1');
|
|
define('OMB_VERSION_01', 'http://openmicroblogging.org/protocol/0.1');
|
|
define('OAUTH_DISCOVERY', 'http://oauth.net/discovery/1.0');
|
|
|
|
define('OMB_ENDPOINT_UPDATEPROFILE', OMB_NAMESPACE.'updateProfile');
|
|
define('OMB_ENDPOINT_POSTNOTICE', OMB_NAMESPACE.'postNotice');
|
|
define('OAUTH_ENDPOINT_REQUEST', OAUTH_NAMESPACE.'endpoint/request');
|
|
define('OAUTH_ENDPOINT_AUTHORIZE', OAUTH_NAMESPACE.'endpoint/authorize');
|
|
define('OAUTH_ENDPOINT_ACCESS', OAUTH_NAMESPACE.'endpoint/access');
|
|
define('OAUTH_ENDPOINT_RESOURCE', OAUTH_NAMESPACE.'endpoint/resource');
|
|
define('OAUTH_AUTH_HEADER', OAUTH_NAMESPACE.'parameters/auth-header');
|
|
define('OAUTH_POST_BODY', OAUTH_NAMESPACE.'parameters/post-body');
|
|
define('OAUTH_HMAC_SHA1', OAUTH_NAMESPACE.'signature/HMAC-SHA1');
|
|
|
|
function omb_oauth_consumer() {
|
|
static $con = null;
|
|
if (!$con) {
|
|
$con = new OAuthConsumer(common_root_url(), '');
|
|
}
|
|
return $con;
|
|
}
|
|
|
|
function omb_oauth_server() {
|
|
static $server = null;
|
|
if ($server) {
|
|
$server = new OAuthServer(new LaconicaOAuthStore());
|
|
}
|
|
return $server;
|
|
}
|
|
|
|
function omb_hmac_sha1() {
|
|
static $hmac_method = NULL;
|
|
if (!$hmac_method) {
|
|
$hmac_method = new OAuthSignatureMethod_HMAC_SHA1();
|
|
}
|
|
return $hmac_method;
|
|
}
|
|
|
|
function omb_service_uri($service) {
|
|
$uris = $service->getURIs();
|
|
if (!$uris) {
|
|
return NULL;
|
|
}
|
|
return $uris[0];
|
|
}
|
|
|
|
function omb_local_id($service) {
|
|
$els = $service->getElements('LocalID');
|
|
return ($els) ? $els[0] : NULL;
|
|
}
|
|
|