Commit e9800dba authored by Alex Ne's avatar Alex Ne

vk api success

parent 87385a10
......@@ -17,7 +17,7 @@ class Client extends ClientSettings {
$curl = curl_init();
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());
}
......@@ -29,7 +29,7 @@ class Client extends ClientSettings {
# 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_POSTFIELDS, $this->build_post());
}
......
<?php
namespace X\Social\VK;
class VKSecureNullToken extends \X\ETrace\System {}
class VKSecureNullVarible extends \X\ETrace\System {}
class Secure {
class Secure extends VKAPI {
/**
* @var mixed
*/
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;
if (is_null($server_token)) {
throw new VKSecureNullToken("Client access_token is null", 0);
}
}
# secure.getAppBalance
......@@ -104,18 +109,32 @@ class Secure {
# secure.checkToken
# Позволяет проверять валидность пользователя в IFrame, Flash и Standalone-приложениях с помощью передаваемого в приложения параметра access_token.
/**
* @param $token
* @param $ip
* @param string $access_token - клиентский access_token
* @param string $ip - ip адрес пользователя. Если параметр не передан – ip адрес проверен не будет.
*/
public function checkToken($token, $ip = null) {
# code...
public function checkToken($access_token, $ip = null) {
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
# user_id = идентификатор пользователя
# date = 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 {
$params["grant_type"] = "client_credentials";
$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"])) {
$this->server_token = $data["access_token"];
} else {
......@@ -43,6 +43,13 @@ class ServerToken extends VKAPI {
public function get_token() {
return $this->server_token;
}
/**
* @return mixed
*/
public function getCredentials() {
return $this->Credentials;
}
}
?>
\ No newline at end of file
<?php
namespace X\Social\VK;
class VKAPICredentialsIsNull extends \X\ETrace\System {}
class VKAPIResponseError extends \X\ETrace\System {}
class VKAPIResponseNull extends \X\ETrace\System {}
class VKAPI {
......@@ -17,7 +19,7 @@ class VKAPI {
/**
* @var string
*/
private $api_url;
protected $api_url = "https://api.vk.com/";
/**
* @param \X\Social\VK\Credentials $Credentials
......@@ -46,7 +48,7 @@ class VKAPI {
* @param $params
* @return array
*/
protected function query($url, $params) {
protected function query($url, $params = []) {
$Client = new \X\Network\Http\Client($url);
$Client->set_model_data(["post" => $params]);
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