Implement two basic VKAPI methods: users.get and friends.get

This commit is contained in:
trogwar
2016-06-30 07:23:24 +03:00
committed by Jack Wall
parent 5ba6995aba
commit 16ee969bdb

View File

@@ -173,4 +173,63 @@ class Vkontakte extends AbstractProvider
return new User($response, $response['id']); return new User($response, $response['id']);
} }
// ========== API methods ==========
/**
* @see https://vk.com/dev/users.get
*
* @param integer[] $ids
* @param AccessToken|null $token Current user if empty
* @param array $params
*
* @return User[]
*/
public function usersGet(array $ids = [], AccessToken $token = null, array $params = [])
{
if (empty($ids) && !$token)
throw new \InvalidArgumentException('Some of parameters usersIds OR access_token are required');
$default = [
'user_ids' => implode(',', $ids),
'fields' => $this->userFields,
'access_token' => $token ? $token->getToken() : null,
'v' => $this->version,
];
$params = array_merge($default, $params);
$query = $this->buildQueryString($params);
$url = "$this->baseUri/users.get?$query";
$response = $this->getResponse($this->createRequest(static::METHOD_GET, $url, $token, []))['response'];
$users = !empty($response['items']) ? $response['items'] : $response;
$array2user = function ($userData) { return new User($userData); };
return array_map($array2user, $users);
}
/**
* @see https://vk.com/dev/friends.get
*
* @param integer $userId
* @param AccessToken|null $token
* @param array $params
*
* @return User[]
*/
public function friendsGet($userId, AccessToken $token = null, array $params = [])
{
$default = [
'user_id' => $userId,
'fields' => $this->userFields,
'access_token' => $token ? $token->getToken() : null,
'v' => $this->version,
];
$params = array_merge($default, $params);
$query = $this->buildQueryString($params);
$url = "$this->baseUri/friends.get?$query";
$response = $this->getResponse($this->createRequest(static::METHOD_GET, $url, $token, []))['response'];
$friends = !empty($response['items']) ? $response['items'] : $response;
$array2friend = function ($friendData) { return new User($friendData); };
return array_map($array2friend, $friends);
}
} }