function CheckReferer($ua)
{
    if ($ua->is_referral() || $ua->referrer() === "") {
        echo BuildErrorResponse(403, 107, "Invalid referer.");
        return false;
    }
    return true;
}
function ApiParamValidate($data, $requireParams)
{
    foreach ($requireParams as $requireParam) {
        if (!array_key_exists($requireParam, $data)) {
            echo BuildErrorResponse(400, 101, 'Some required parameters.');
            return false;
        }
    }
    return true;
}
 public function timeline()
 {
     header("Content-Type: application/json; charset=utf-8");
     if (!CheckReferer($this->agent)) {
         return;
     }
     $get = $this->input->get();
     $isLogin = $this->session->userdata('is_login');
     if ($isLogin) {
         $meUserId = $this->session->userdata('me')['id'];
         $this->load->model("Coreapi_status", "CoreAPI_Status");
         $res = $this->CoreAPI_Status->timeline($meUserId, $get);
     } else {
         $res = BuildErrorResponse(400, 106, 'Please request with login.');
     }
     echo $res;
 }
Example #4
0
 public function update($meUserId, $post)
 {
     $this->load->model('Status_model', 'StatusModel', TRUE);
     if (!ApiParamValidate($post, ['text'])) {
         return;
     }
     $text = urldecode($post["text"]);
     if (strlen($text) <= 400) {
         if ($status = $this->StatusModel->Create($meUserId, $text, 0)) {
             $res = BuildSuccessResponse(["message" => "successful.", 'status' => $status]);
         } else {
             $res = BuildErrorResponse(500, 105, 'Failed to execute.');
         }
     } else {
         $res = BuildErrorResponse(400, 100, 'text is too long.');
     }
     return $res;
 }
 public function logout()
 {
     header("Content-Type: application/json; charset=utf-8");
     if (!CheckReferer($this->agent)) {
         return;
     }
     $isLogin = $this->session->userdata("is_login");
     if ($isLogin) {
         $this->session->sess_destroy();
         $res = BuildSuccessResponse("successful.");
     } else {
         $res = BuildErrorResponse(400, 106, "Please request with login.");
     }
     echo $res;
 }
Example #6
0
 public function friendstatus($meScreenName, $meUserId, $get)
 {
     $this->load->model("Account_model", "AccountModel", TRUE);
     $this->load->model("Friend_model", "FriendModel", TRUE);
     if (!ApiParamValidate($get, ["screen_name"])) {
         return;
     }
     $screenName = urldecode($get["screen_name"]);
     if (preg_match("/^[a-z0-9_]+\$/i", $screenName) === 1) {
         if ($screenName !== $meScreenName) {
             if ($target = $this->AccountModel->FindByScreenName($screenName)) {
                 $isFollower = $this->FriendModel->IsExist($target["id"], $meUserId);
                 $isFollowing = $this->FriendModel->IsExist($meUserId, $target["id"]);
                 $res = BuildSuccessResponse(["message" => "successful.", "is_follower" => $isFollower, "is_following" => $isFollowing]);
             } else {
                 $res = BuildErrorResponse(400, 200, "User not found.");
             }
         } else {
             $res = BuildErrorResponse(400, 201, "This user is you.");
         }
     } else {
         $res = BuildErrorResponse(400, 102, "Some invalid parameters.");
     }
     return $res;
 }