user_id = $user_id;
$this->user_key = $user_key;
}
function _getNonce() {
for($i=0;$i<8;$i++) $nonce .= dechex(rand(0, 15));
return $nonce;
}
function _getAuthKey() {
$nonce = $this->_getNonce();
return $nonce.md5($nonce.$this->user_key);
}
function _getPath($method, $user_id = null) {
if(!$user_id) return sprintf('/api/%s.xml', $method);
return sprintf('/api/%s/%s.xml',$method, $user_id);
}
function _getContent($method, $user_id = null, $params = null) {
$url = $this->api_url.$this->_getPath($method, $user_id);
$auth = base64_encode($this->user_id.':'.$this->_getAuthKey());
$arr_content = array();
if(is_array($params) && count($params)) {
foreach($params as $key => $val) {
$arr_content[] = sprintf('%s=%s', $key, urlencode($val));
}
$body = implode('&',$arr_content);
}
$buff = FileHandler::getRemoteResource($url, $body, 3, 'POST', 'application/x-www-form-urlencoded',
array(
'me2_application_key'=>$this->application_key,
'Authorization'=>'Basic '.$auth,
)
);
return $buff;
}
function chkNoop() {
$buff = $this->_getContent('noop');
if(strpos($buff, '0')!==false) return new Object();
return new Object(-1, $buff);
}
function doPost($body, $tags, $content_type = 'document') {
$params = array('post[body]'=>$body, 'post[tags]'=>str_replace(',',' ',$tags), 'content_type'=>$content_type);
$buff = $this->_getContent('create_post',$this->user_id,$params);
if(strpos($buff, '0')!==false) return new Object();
return new Object(-1,$buff);
}
}
?>