]> git.mxchange.org Git - friendica.git/blobdiff - include/api.php
string update
[friendica.git] / include / api.php
index 1334d8eae78421778c8d683fd090d09ddd148974..9cf4551bdee87dbfd848796d57fa7b394fcc7356 100644 (file)
@@ -2,7 +2,7 @@
        require_once("bbcode.php");
        require_once("datetime.php");
        require_once("conversation.php");
-       
+       require_once("oauth.php");
        /* 
         * Twitter-Like API
         *  
         * Simple HTTP Login
         */
        function api_login(&$a){
+               // login with oauth
+               try{
+                       $oauth = new FKOAuth1();
+                       list($consumer,$token) = $oauth->verify_request(OAuthRequest::from_request());
+                       if (!is_null($token)){
+                               $oauth->loginUser($token->uid);
+                               call_hooks('logged_in', $a->user);
+                               return;
+                       }
+                       echo __file__.__line__.__function__."<pre>"; var_dump($consumer, $token); die();
+               }catch(Exception $e){
+                       logger(__file__.__line__.__function__."\n".$e);
+                       //die(__file__.__line__.__function__."<pre>".$e); die();
+               }
+
+               
+               
                // workaround for HTTP-auth in CGI mode
                if(x($_SERVER,'REDIRECT_REMOTE_USER')) {
                        $userpass = base64_decode(substr($_SERVER["REDIRECT_REMOTE_USER"],6)) ;
                // count friends
                $r = q("SELECT COUNT(`id`) as `count` FROM `contact`
                                WHERE  `uid` = %d AND `rel` IN ( %d, %d )
-                               AND `self`=0 AND `blocked`=0", 
+                               AND `self`=0 AND `blocked`=0 AND `pending`=0 AND `hidden`=0", 
                                intval($uinfo[0]['uid']),
                                intval(CONTACT_IS_SHARING),
                                intval(CONTACT_IS_FRIEND)
 
                $r = q("SELECT COUNT(`id`) as `count` FROM `contact`
                                WHERE  `uid` = %d AND `rel` IN ( %d, %d )
-                               AND `self`=0 AND `blocked`=0", 
+                               AND `self`=0 AND `blocked`=0 AND `pending`=0 AND `hidden`=0", 
                                intval($uinfo[0]['uid']),
                                intval(CONTACT_IS_FOLLOWER),
                                intval(CONTACT_IS_FRIEND)
                return $ret; 
        }
 
-       /**
-        * apply xmlify() to all values of array $val, recursively
-        */
-       function api_xmlify($val){
-               if (is_bool($val)) return $val?"true":"false";
-               if (is_array($val)) return array_map('api_xmlify', $val);
-               return xmlify((string) $val);
-       }
 
        /**
         *  load api $templatename for $type and replace $data array
                        case "atom":
                        case "rss":
                        case "xml":
-                               $data = api_xmlify($data);
+                               $data = array_xmlify($data);
                                $tpl = get_markup_template("api_".$templatename."_".$type.".tpl");
                                $ret = replace_macros($tpl, $data);
                                break;
        }
        api_register_func('api/direct_messages/sent','api_direct_messages_sentbox',true);
        api_register_func('api/direct_messages','api_direct_messages_inbox',true);
+
+
+
+       function api_oauth_request_token(&$a, $type){
+               try{
+                       $oauth = new FKOAuth1();
+                       $r = $oauth->fetch_request_token(OAuthRequest::from_request());
+               }catch(Exception $e){
+                       echo "error=". OAuthUtil::urlencode_rfc3986($e->getMessage()); killme();
+               }
+               echo $r;
+               killme();       
+       }
+       function api_oauth_access_token(&$a, $type){
+               try{
+                       $oauth = new FKOAuth1();
+                       $r = $oauth->fetch_access_token(OAuthRequest::from_request());
+               }catch(Exception $e){
+                       echo "error=". OAuthUtil::urlencode_rfc3986($e->getMessage()); killme();
+               }
+               echo $r;
+               killme();                       
+       }
+
+       api_register_func('api/oauth/request_token', 'api_oauth_request_token', false);
+       api_register_func('api/oauth/access_token', 'api_oauth_access_token', false);
+
+