Вся ценность вконтакта, да и прочих соц сетей - в информации что хранится в них. Информация - это сила, и чтобы ею пользоваться, есть API.В интернете много написано о том как сделать свое приложение вконтакте. Например, тут: http://vk.com/dev. Я не буду дублировать эти объяснения, а просто приведу пример очень простого standalone-приложения.
(читать далее...)
Чтобы его сделать нужен аккаунт вконтакте и веб-сервер. Регистрируете новое standalone-приложение, а на сервер кладете вот такой код его автор - Валентин Федотов. Этот код делает следующее:
header('Content-Type: text/html; charset=utf-8');
$redurect_uri = 'http://my-server_domain.ru/this-script.php';
$app_id = '123456';
$client_secret = 'SfdbdmbvnDmF';
try{
if(isset($_GET['error'])){
throw new Exception(urldecode($_GET['error_description']));
}
if(isset($_GET['code'])){
// Получить токен
$url = "https://oauth.vk.com/access_token";
$url.= "?client_id=" . $app_id;
$url.= "&client_secret=" . $client_secret;
$url.= "&code=" . $_GET['code'];
$url.= "&redirect_uri=" . $redurect_uri;
$ch = curl_init($url);
//Проверка сертификатов
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = json_decode(curl_exec($ch));
curl_close($ch);
if(isset($res->error_description)){
if($res->error_description === "Code is invalid or expired."){
header('location: ' . $redurect_uri);
}
else{
throw new Exception($res->error_description);
}
}
if(isset($res->access_token)){
// Делаем запрос к апи
$url_userSearch = 'https://api.vk.com/method/users.search';
$url_userSearch.= '?fields=screen_name,sex,city,last_seen,can_write_private_message';
$url_userSearch.= '&access_token=' . $res->access_token;
$ch = curl_init($url_userSearch);
//Проверка сертификатов
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = json_decode(curl_exec($ch));
echo "<pre>";
print_r($res);
echo "</pre>";
curl_close($ch);
}
}
else{
$auth_url = 'http://oauth.vk.com/authorize';
$auth_url.= '?client_id=' . $app_id;
$auth_url.= '&redirect_uri=' . $redurect_uri;
$auth_url.= '&response_type=code';
$auth_url.= '&scope=262144';
header('location: ' . $auth_url);
}
}catch(Exception $e){
echo "Error: " . $e->getMessage();
}
- Посылает пользователя на сайт вконтакта, чтобы тот авторизировался.
- Посылает запрос вконтакту, в данном примере - спрашивает вывод списка пользователей с их определенными данными.
header('Content-Type: text/html; charset=utf-8');
$redurect_uri = 'http://my-server_domain.ru/this-script.php';
$app_id = '123456';
$client_secret = 'SfdbdmbvnDmF';
try{
if(isset($_GET['error'])){
throw new Exception(urldecode($_GET['error_description']));
}
if(isset($_GET['code'])){
// Получить токен
$url = "https://oauth.vk.com/access_token";
$url.= "?client_id=" . $app_id;
$url.= "&client_secret=" . $client_secret;
$url.= "&code=" . $_GET['code'];
$url.= "&redirect_uri=" . $redurect_uri;
$ch = curl_init($url);
//Проверка сертификатов
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = json_decode(curl_exec($ch));
curl_close($ch);
if(isset($res->error_description)){
if($res->error_description === "Code is invalid or expired."){
header('location: ' . $redurect_uri);
}
else{
throw new Exception($res->error_description);
}
}
if(isset($res->access_token)){
// Делаем запрос к апи
$url_userSearch = 'https://api.vk.com/method/users.search';
$url_userSearch.= '?fields=screen_name,sex,city,last_seen,can_write_private_message';
$url_userSearch.= '&access_token=' . $res->access_token;
$ch = curl_init($url_userSearch);
//Проверка сертификатов
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = json_decode(curl_exec($ch));
echo "<pre>";
print_r($res);
echo "</pre>";
curl_close($ch);
}
}
else{
$auth_url = 'http://oauth.vk.com/authorize';
$auth_url.= '?client_id=' . $app_id;
$auth_url.= '&redirect_uri=' . $redurect_uri;
$auth_url.= '&response_type=code';
$auth_url.= '&scope=262144';
header('location: ' . $auth_url);
}
}catch(Exception $e){
echo "Error: " . $e->getMessage();
}
Комментариев нет:
Отправить комментарий