api post sort of working - output status,user need to be swapped
This commit is contained in:
parent
cc7c72be90
commit
b56e00c7c5
4 changed files with 67 additions and 5 deletions
|
@ -9,13 +9,15 @@ Deny from all
|
||||||
<IfModule mod_rewrite.c>
|
<IfModule mod_rewrite.c>
|
||||||
RewriteEngine on
|
RewriteEngine on
|
||||||
|
|
||||||
|
# RewriteRule api.* - [E=REMOTE_USER:%{HTTP:Authorization},L]
|
||||||
|
|
||||||
# Protect repo directory from browsing
|
# Protect repo directory from browsing
|
||||||
RewriteRule "(^|/)\.git" - [F]
|
RewriteRule "(^|/)\.git" - [F]
|
||||||
|
|
||||||
# Rewrite current-style URLs of the form 'index.php?q=x'.
|
# Rewrite current-style URLs of the form 'index.php?q=x'.
|
||||||
RewriteCond %{REQUEST_FILENAME} !-f
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
RewriteCond %{REQUEST_FILENAME} !-d
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
|
RewriteRule ^(.*)$ index.php?q=$1 [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
|
||||||
|
|
||||||
</IfModule>
|
</IfModule>
|
||||||
|
|
||||||
|
|
|
@ -27,10 +27,21 @@
|
||||||
* Simple HTTP Login
|
* Simple HTTP Login
|
||||||
*/
|
*/
|
||||||
function api_login(&$a){
|
function api_login(&$a){
|
||||||
|
// workaround for HTTP-auth in CGI mode
|
||||||
|
if(x($_SERVER,'REDIRECT_REMOTE_USER')) {
|
||||||
|
$userpass = base64_decode(substr($_SERVER["REDIRECT_REMOTE_USER"],6)) ;
|
||||||
|
if(strlen($userpass)) {
|
||||||
|
list($name, $password) = explode(':', $userpass);
|
||||||
|
$_SERVER['PHP_AUTH_USER'] = $name;
|
||||||
|
$_SERVER['PHP_AUTH_PW'] = $password;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!isset($_SERVER['PHP_AUTH_USER'])) {
|
if (!isset($_SERVER['PHP_AUTH_USER'])) {
|
||||||
|
logger('API_login: ' . print_r($_SERVER,true), LOGGER_DEBUG);
|
||||||
header('WWW-Authenticate: Basic realm="Friendika"');
|
header('WWW-Authenticate: Basic realm="Friendika"');
|
||||||
header('HTTP/1.0 401 Unauthorized');
|
header('HTTP/1.0 401 Unauthorized');
|
||||||
die('This api require login');
|
die('This api requires login');
|
||||||
}
|
}
|
||||||
|
|
||||||
$user = $_SERVER['PHP_AUTH_USER'];
|
$user = $_SERVER['PHP_AUTH_USER'];
|
||||||
|
@ -52,9 +63,10 @@
|
||||||
if(count($r)){
|
if(count($r)){
|
||||||
$record = $r[0];
|
$record = $r[0];
|
||||||
} else {
|
} else {
|
||||||
|
logger('API_login failure: ' . print_r($_SERVER,true), LOGGER_DEBUG);
|
||||||
header('WWW-Authenticate: Basic realm="Friendika"');
|
header('WWW-Authenticate: Basic realm="Friendika"');
|
||||||
header('HTTP/1.0 401 Unauthorized');
|
header('HTTP/1.0 401 Unauthorized');
|
||||||
die('This api require login');
|
die('This api requires login');
|
||||||
}
|
}
|
||||||
$_SESSION['uid'] = $record['uid'];
|
$_SESSION['uid'] = $record['uid'];
|
||||||
$_SESSION['theme'] = $record['theme'];
|
$_SESSION['theme'] = $record['theme'];
|
||||||
|
@ -303,7 +315,7 @@
|
||||||
|
|
||||||
// TODO - media uploads and alternate 'source'
|
// TODO - media uploads and alternate 'source'
|
||||||
|
|
||||||
function api_post_message(&$a, $type) {
|
function api_statuses_update(&$a, $type) {
|
||||||
if (local_user()===false) return false;
|
if (local_user()===false) return false;
|
||||||
$user_info = api_get_user($a);
|
$user_info = api_get_user($a);
|
||||||
|
|
||||||
|
@ -329,7 +341,7 @@
|
||||||
item_post($a);
|
item_post($a);
|
||||||
|
|
||||||
// this should output the last post (the one we just posted).
|
// this should output the last post (the one we just posted).
|
||||||
return api_users_show();
|
return api_users_show($a,$type);
|
||||||
}
|
}
|
||||||
api_register_func('api/statuses/update','api_statuses_update', true);
|
api_register_func('api/statuses/update','api_statuses_update', true);
|
||||||
|
|
||||||
|
|
|
@ -722,6 +722,8 @@ function item_post(&$a) {
|
||||||
logger('return: ' . $_POST['return']);
|
logger('return: ' . $_POST['return']);
|
||||||
goaway($a->get_baseurl() . "/" . $_POST['return'] );
|
goaway($a->get_baseurl() . "/" . $_POST['return'] );
|
||||||
}
|
}
|
||||||
|
if($_POST['api_source'])
|
||||||
|
return;
|
||||||
$json = array('success' => 1);
|
$json = array('success' => 1);
|
||||||
if(x($_POST,'jsreload') && strlen($_POST['jsreload']))
|
if(x($_POST,'jsreload') && strlen($_POST['jsreload']))
|
||||||
$json['reload'] = $a->get_baseurl() . '/' . $_POST['jsreload'];
|
$json['reload'] = $a->get_baseurl() . '/' . $_POST['jsreload'];
|
||||||
|
|
46
view/api_status_xml.tpl
Normal file
46
view/api_status_xml.tpl
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
<status>{{ if $status }}
|
||||||
|
<created_at>$status.created_at</created_at>
|
||||||
|
<id>$status.id</id>
|
||||||
|
<text>$status.text</text>
|
||||||
|
<source>$status.source</source>
|
||||||
|
<truncated>$status.truncated</truncated>
|
||||||
|
<in_reply_to_status_id>$status.in_reply_to_status_id</in_reply_to_status_id>
|
||||||
|
<in_reply_to_user_id>$status.in_reply_to_user_id</in_reply_to_user_id>
|
||||||
|
<favorited>$status.favorited</favorited>
|
||||||
|
<in_reply_to_screen_name>$status.in_reply_to_screen_name</in_reply_to_screen_name>
|
||||||
|
<geo>$status.geo</geo>
|
||||||
|
<coordinates>$status.coordinates</coordinates>
|
||||||
|
<place>$status.place</place>
|
||||||
|
<contributors>$status.contributors</contributors>
|
||||||
|
<user>
|
||||||
|
<id>$status.user.id</id>
|
||||||
|
<name>$status.user.name</name>
|
||||||
|
<screen_name>$status.user.screen_name</screen_name>
|
||||||
|
<location>$status.user.location</location>
|
||||||
|
<description>$status.user.description</description>
|
||||||
|
<profile_image_url>$status.user.profile_image_url</profile_image_url>
|
||||||
|
<url>$status.user.url</url>
|
||||||
|
<protected>$status.user.protected</protected>
|
||||||
|
<followers_count>$status.user.followers</followers_count>
|
||||||
|
<profile_background_color>$status.user.profile_background_color</profile_background_color>
|
||||||
|
<profile_text_color>$status.user.profile_text_color</profile_text_color>
|
||||||
|
<profile_link_color>$status.user.profile_link_color</profile_link_color>
|
||||||
|
<profile_sidebar_fill_color>$status.user.profile_sidebar_fill_color</profile_sidebar_fill_color>
|
||||||
|
<profile_sidebar_border_color>$status.user.profile_sidebar_border_color</profile_sidebar_border_color>
|
||||||
|
<friends_count>$status.user.friends_count</friends_count>
|
||||||
|
<created_at>$status.user.created_at</created_at>
|
||||||
|
<favourites_count>$status.user.favourites_count</favourites_count>
|
||||||
|
<utc_offset>$status.user.utc_offset</utc_offset>
|
||||||
|
<time_zone>$status.user.time_zone</time_zone>
|
||||||
|
<profile_background_image_url>$status.user.profile_background_image_url</profile_background_image_url>
|
||||||
|
<profile_background_tile>$status.user.profile_background_tile</profile_background_tile>
|
||||||
|
<profile_use_background_image>$status.user.profile_use_background_image</profile_use_background_image>
|
||||||
|
<notifications></notifications>
|
||||||
|
<geo_enabled>$status.user.geo_enabled</geo_enabled>
|
||||||
|
<verified>$status.user.verified</verified>
|
||||||
|
<following></following>
|
||||||
|
<statuses_count>$status.user.statuses_count</statuses_count>
|
||||||
|
<lang>$status.user.lang</lang>
|
||||||
|
<contributors_enabled>$status.user.contributors_enabled</contributors_enabled>
|
||||||
|
</user>
|
||||||
|
{{ endif }}</status>
|
Loading…
Reference in a new issue