not implemented'; switch($type){ case 'xml': header ('Content-Type: text/xml'); return '' . "\n" . $r; break; case "json": header ('Content-Type: application/json'); return json_encode(array('error' => 'not implemented')); break; case "rss": header ('Content-Type: application/rss+xml'); return '' . "\n" . $r; break; case "atom": header ('Content-Type: application/atom+xml'); return '' . "\n" . $r; break; } } /** * load api $templatename for $type and replace $data array */ function api_apply_template($templatename, $type, $data){ switch($type){ case 'xml': if($data) { foreach($data as $k => $v) $ret = arrtoxml(str_replace('$','',$k),$v); } break; case 'json': default: if($data) { foreach($data as $rv) { $ret = json_encode($rv); } } break; } return $ret; } function api_client_register($type) { $ret = array(); $key = random_string(16); $secret = random_string(16); $name = trim(escape_tags($_REQUEST['application_name'])); if(! $name) json_return_and_die($ret); if(is_array($_REQUEST['redirect_uris'])) $redirect = trim($_REQUEST['redirect_uris'][0]); else $redirect = trim($_REQUEST['redirect_uris']); $icon = trim($_REQUEST['logo_uri']); $r = q("INSERT INTO clients (client_id, pw, clname, redirect_uri, icon, uid) VALUES ('%s','%s','%s','%s','%s',%d)", dbesc($key), dbesc($secret), dbesc($name), dbesc($redirect), dbesc($icon), intval(0) ); $ret['client_id'] = $key; $ret['client_secret'] = $secret; $ret['expires_at'] = 0; json_return_and_die($ret); } function api_oauth_request_token( $type){ try{ $oauth = new ZotOAuth1(); $req = OAuth1Request::from_request(); logger('Req: ' . var_export($req,true),LOGGER_DATA); $r = $oauth->fetch_request_token($req); }catch(Exception $e){ logger('oauth_exception: ' . print_r($e->getMessage(),true)); echo 'error=' . OAuth1Util::urlencode_rfc3986($e->getMessage()); killme(); } echo $r; killme(); } function api_oauth_access_token( $type){ try{ $oauth = new ZotOAuth1(); $req = OAuth1Request::from_request(); $r = $oauth->fetch_access_token($req); } catch(Exception $e) { echo 'error=' . OAuth1Util::urlencode_rfc3986($e->getMessage()); killme(); } echo $r; killme(); }