profile = $profile; $this->dialog = $dialog; $this->accessToken = $accessToken; $this->header = $header; $this->request = $request; } public function getLoginUrl() { $urlBuilder = []; $urlBuilder[] = "client_id=" . $this->clientId; $urlBuilder[] = "response_type=" . $this->responseType; $urlBuilder[] = "scope=" . $this->scope; $urlBuilder[] = "state=" . $this->state; $urlBuilder[] = "redirect_uri=" . urlencode($this->redirectURL); return $this->dialog . "?" . implode("&", $urlBuilder); } protected function getToken() { $tokenBuilder = []; $tokenBuilder["client_id"] = $this->clientId; $tokenBuilder["client_secret"] = $this->client_secret; $tokenBuilder["grant_type"] = "authorization_code"; $tokenBuilder["redirect_uri"] = htmlspecialchars($this->redirectURL); $tokenBuilder["code"] = $this->request["code"]; $curl = new ccurl($this->accessToken); $curl->setPost($tokenBuilder); $curl->createCurl(); return (string)$curl; } protected function parseToken() { $token = $this->getToken(); $convertedToken = json_decode($token, true); if (!$convertedToken) { $realToken = $token; } else { $realToken = $convertedToken["access_token"]; } return $realToken; } public function getProfile() { $token = $this->parseToken(); $profileUrl = $this->profile . "=" . $token; $curl = new ccurl($profileUrl); $curl->addHeader($this->header . " " . $token); $curl->createCurl(); $this->profileData = json_decode((string)$curl, true); return (string)$curl; } public function getEmail() { return null; } public function getFirstName() { return null; } public function getLastName() { return null; } public function getGender() { return null; } public function getId() { return null; } public function getRawProfile() { return $this->profileData; } public function getSource() { return null; } }