Commit e9800dba authored by Alex Ne's avatar Alex Ne

vk api success

parent 87385a10
...@@ -17,7 +17,7 @@ class Client extends ClientSettings { ...@@ -17,7 +17,7 @@ class Client extends ClientSettings {
$curl = curl_init(); $curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $this->build_url()); curl_setopt($curl, CURLOPT_URL, $this->build_url());
if (isset($this->data["cookies"]) && is_array($this->data["cookies"])) { if (isset($this->data["cookies"]) && is_array($this->data["cookies"]) && count($this->data["cookies"]) > 0) {
curl_setopt($curl, CURLOPT_COOKIE, $this->implode_cookies()); curl_setopt($curl, CURLOPT_COOKIE, $this->implode_cookies());
} }
...@@ -29,7 +29,7 @@ class Client extends ClientSettings { ...@@ -29,7 +29,7 @@ class Client extends ClientSettings {
# curl_setopt($curl, CURLOPT_PROXY, $this->Proxy); # curl_setopt($curl, CURLOPT_PROXY, $this->Proxy);
#} #}
if (isset($this->data["post"]) && is_array($this->data["post"])) { if (isset($this->data["post"]) && is_array($this->data["post"]) && count($this->data["post"]) > 0) {
curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $this->build_post()); curl_setopt($curl, CURLOPT_POSTFIELDS, $this->build_post());
} }
......
<?php <?php
namespace X\Social\VK; namespace X\Social\VK;
class VKSecureNullToken extends \X\ETrace\System {}
class VKSecureNullVarible extends \X\ETrace\System {}
class Secure { class Secure extends VKAPI {
/** /**
* @var mixed * @var mixed
*/ */
private $ServerToken; private $ServerToken;
/** /**
* @param string $ServerToken * @param \X\Social\VK\ServerToken $server_token
*/ */
public function __construct($ServerToken) { public function __construct($server_token) {
$this->server_token = $server_token; $this->server_token = $server_token;
if (is_null($server_token)) {
throw new VKSecureNullToken("Client access_token is null", 0);
}
} }
# secure.getAppBalance # secure.getAppBalance
...@@ -104,18 +109,32 @@ class Secure { ...@@ -104,18 +109,32 @@ class Secure {
# secure.checkToken # secure.checkToken
# Позволяет проверять валидность пользователя в IFrame, Flash и Standalone-приложениях с помощью передаваемого в приложения параметра access_token. # Позволяет проверять валидность пользователя в IFrame, Flash и Standalone-приложениях с помощью передаваемого в приложения параметра access_token.
/** /**
* @param $token * @param string $access_token - клиентский access_token
* @param $ip * @param string $ip - ip адрес пользователя. Если параметр не передан – ip адрес проверен не будет.
*/ */
public function checkToken($token, $ip = null) { public function checkToken($access_token, $ip = null) {
# code... if (is_null($access_token) || strlen($access_token) == 0) {
throw new VKSecureNullVarible("Value 'access_token' is null", 0);
}
$params["token"] = $access_token;
$params["access_token"] = $this->server_token->get_token();
$params["client_secret"] = $this->server_token->getCredentials()->get_client_secret();
$params["v"] = $this->server_token->getCredentials()->get_api_version();
$data = $this->query($this->api_url . "method/secure.checkToken?", $params);
# В случае успеха будет возвращен объект, содержащий следующие поля: # В случае успеха будет возвращен объект, содержащий следующие поля:
# success = 1 # success = 1
# user_id = идентификатор пользователя # user_id = идентификатор пользователя
# date = unixtime дата, когда access_token был сгенерирован # date = unixtime дата, когда access_token был сгенерирован
# expire = unixtime дата, когда access_token станет не валиден # expire = unixtime дата, когда access_token станет не валиден
if (isset($data["response"]["success"])) {
return $data["response"];
} else if (isset($data["error"])) {
throw new VKAPIResponseError($data["error"]["error_msg"],
$data["error"]["error_code"],
["params" => $params, "request_params" => $data["error"]["request_params"]]);
} else {
throw new VKAPIResponseNull("VK API return null response", 0, ["params" => $params, "data" => $data]);
}
} }
} }
?> ?>
\ No newline at end of file
...@@ -29,7 +29,7 @@ class ServerToken extends VKAPI { ...@@ -29,7 +29,7 @@ class ServerToken extends VKAPI {
$params["grant_type"] = "client_credentials"; $params["grant_type"] = "client_credentials";
$params["v"] = $this->Credentials->get_api_version(); $params["v"] = $this->Credentials->get_api_version();
$data = $this->query($oauth_url . "access_token?" . $params); $data = $this->query($this->oauth_url . "access_token?", $params);
if (isset($data["access_token"])) { if (isset($data["access_token"])) {
$this->server_token = $data["access_token"]; $this->server_token = $data["access_token"];
} else { } else {
...@@ -43,6 +43,13 @@ class ServerToken extends VKAPI { ...@@ -43,6 +43,13 @@ class ServerToken extends VKAPI {
public function get_token() { public function get_token() {
return $this->server_token; return $this->server_token;
} }
/**
* @return mixed
*/
public function getCredentials() {
return $this->Credentials;
}
} }
?> ?>
\ No newline at end of file
<?php <?php
namespace X\Social\VK; namespace X\Social\VK;
class VKAPICredentialsIsNull extends \X\ETrace\System {} class VKAPICredentialsIsNull extends \X\ETrace\System {}
class VKAPIResponseError extends \X\ETrace\System {}
class VKAPIResponseNull extends \X\ETrace\System {}
class VKAPI { class VKAPI {
...@@ -17,7 +19,7 @@ class VKAPI { ...@@ -17,7 +19,7 @@ class VKAPI {
/** /**
* @var string * @var string
*/ */
private $api_url; protected $api_url = "https://api.vk.com/";
/** /**
* @param \X\Social\VK\Credentials $Credentials * @param \X\Social\VK\Credentials $Credentials
...@@ -46,7 +48,7 @@ class VKAPI { ...@@ -46,7 +48,7 @@ class VKAPI {
* @param $params * @param $params
* @return array * @return array
*/ */
protected function query($url, $params) { protected function query($url, $params = []) {
$Client = new \X\Network\Http\Client($url); $Client = new \X\Network\Http\Client($url);
$Client->set_model_data(["post" => $params]); $Client->set_model_data(["post" => $params]);
if ($data = $Client->exec()->json_decode()) { if ($data = $Client->exec()->json_decode()) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment