function s_user_by_uid($uid, $sample = true) { if (s_bad_id($uid)) { return false; } $key = "user_by_uid#" . $uid; if (false === ($ret = s_memcache($key))) { if (false === ($ret = s_weibo_http("https://api.weibo.com/2/users/show.json", array('uid' => $uid)))) { return s_err_sdk(); } //由于不包括经常更换的数据,所以存储时间为1天 s_memcache($key, $ret, 24 * 3600); } //规范标准输出 $ret['uid'] = $ret['id']; $ret['uname'] = $ret['screen_name']; $ret['a50'] = $ret['profile_image_url']; $ret['a180'] = $ret['avatar_large']; $ret['purl'] = $ret['profile_url']; unset($ret['avatar_large']); unset($ret['profile_image_url']); if ($sample === true) { //删除一些多余的数据 unset($ret['status']); } return $ret; }
function s_user_by_uid($uid) { if (s_bad_id($uid)) { return false; } $key = "user_by_uid#" . $uid; if (false === ($user = s_memcache($key))) { if (false === ($ret = s_weibo_http("https://api.weibo.com/2/users/show.json", array('uid' => $uid)))) { return s_err_sdk(); } //只缓存少数数据:头像、昵称、 $user = array(); $user['id'] = $ret['id']; $user['name'] = $ret['screen_name']; $user['purl'] = $ret['profile_image_url']; $user['wurl'] = $ret['profile_url']; $user['domain'] = $ret['domain']; $user['location'] = $ret['location']; $user['province'] = $ret['province']; $user['city'] = $ret['city']; //存储memcache中 s_memcache($key, $user); } return $user; }
function s_weibo_by_wid($wid) { if (s_bad_id($wid)) { return s_err_arg(); } $key = 'weibo_by_wid#' . $wid; if (false === ($data = s_memcache($key))) { if (false === ($data = s_weibo_http('https://api.weibo.com/2/statuses/show.json', array('id' => $wid)))) { return s_err_sdk(); } //缓存 s_memcache($key, $data); } return $data; }
function s_badge_new($uid, $bid, $username, $password) { if (s_bad_id($uid) || s_bad_string($username) || s_bad_string($password)) { return s_err_arg(); } $key = "badge_new_by#uid={$uid}&bid={$bid}&user={$username}&password={$password}"; if (false === ($data = s_memcache($key))) { $data = array('badge_id' => $bid, 'uids' => $uid, '_username' => $username, '_password' => $password); if (false === ($data = s_badge_http('http://api.t.sina.com.cn/badges/app/issue.json?source=' . APP_KEY, $data, 'post'))) { return s_err_sdk(); } //缓存一小时 s_memcache($key, $data, 300); } return $data; }
function s_badge_new($uid, $bid, $username, $password) { if (s_bad_id($uid) || s_bad_string($username) || s_bad_string($password)) { return s_err_arg(); } $key = "badge_new_by#uid={$uid}&bid={$bid}&user={$username}&password={$password}"; if (false === ($data = s_memcache($key))) { $data = array('badge_id' => $bid, 'uids' => $uid, '_username' => $username, '_password' => $password); //if (false === ( $data = s_badge_http('http://api.weibo.com/2/proxy/badges/issue.json', $data, 'post') )) { if (false === ($data = s_badge_http('http://i2.api.weibo.com/2/proxy/badges/issue.json', $data, 'post'))) { return s_err_sdk(); } //缓存五分钟 s_memcache($key, $data, 300); } return $data; }
function s_live_now(&$user, $type = 1, $page = 1, $max = 10) { if (s_bad_array($user) || s_bad_id($page) || s_bad_id($type)) { return s_err_arg(); } $key = 'live_list_by#' . $page . $type . $max; if (false === ($data = s_memcache($key))) { $data = array('uid' => $user['uid'], 'type' => $type, 'page' => $page, 'pagesize' => $max); if (false === ($data = s_live_http('http://i.service.t.sina.com.cn/sapps/live/getlivelist.php', $data))) { return s_err_sdk(); } //缓存60秒 s_memcache($key, $data, 60); } return $data; }
function s_weibo_notice(&$uids, $tid, $keys = false, $url = false, $noticeid = false) { if (s_bad_array($uids) || s_bad_string($tid)) { return false; } $_keys = false; $_uids = implode(',', $uids); if ($keys) { $_keys = array_values($keys); $_keys = implode('&', $keys); } $mkey = '!!weibo_notice_by_uids#uids=' . $_uids . 'tid=' . $tid . 'keys=' . $_keys . 'url=' . $url . 'noticeid' . $noticeid; if (false === ($data = s_memcache($mkey))) { $data = array('uids' => $_uids, 'tpl_id' => $tid); if ($url) { //如果是有url添加 $data['action_url'] = $url; } if ($keys) { //合并模板数据 $data = array_merge($data, $keys); } if ($noticeid) { //通知需要用新的APP_KEY $data['_APP_KEY'] = $noticeid; } if (false === ($data = s_weibo_http('http://api.weibo.com/2/notification/send.json', $data, 'post'))) { return s_err_sdk(); } //缓存一小时 //s_memcache($mkey, $data, 3600); } return $data; }
function s_weibo_notice(&$uids, $tid, $keys = false, $url = false, $noticeid = false) { if (s_bad_array($uids) || s_bad_string($tid)) { return false; } $_keys = false; $_uids = implode(',', $uids); if ($keys) { $_keys = array_values($keys); $_keys = implode('&', $keys); } $data = array('uids' => $_uids, 'tpl_id' => $tid); if ($url) { //如果是有url添加 $data['action_url'] = $url; } if ($keys) { //合并模板数据 $data = array_merge($data, $keys); } if ($noticeid) { //通知需要用新的APP_KEY $data['_APP_KEY'] = $noticeid; } if (false === ($data = s_weibo_http('http://i2.api.weibo.com/2/notification/send.json', $data, 'post'))) { return s_err_sdk(); } return $data; }