воскресенье, 2 февраля 2014 г.

Приложение вконтакте

Вся ценность вконтакта, да и прочих соц сетей - в информации что хранится в них. Информация - это сила, и чтобы ею пользоваться, есть API.В интернете много написано о том как сделать свое приложение вконтакте. Например, тут: http://vk.com/dev. Я не буду дублировать эти объяснения, а просто приведу пример очень простого standalone-приложения.
(читать далее...)
Чтобы его сделать нужен аккаунт вконтакте и веб-сервер. Регистрируете новое standalone-приложение, а на сервер кладете вот такой код его автор - Валентин Федотов. Этот код делает следующее:
  1. Посылает пользователя на сайт вконтакта, чтобы тот авторизировался.
  2. Посылает запрос вконтакту, в данном примере - спрашивает вывод списка пользователей с их определенными данными.
<?php
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();
}

Комментариев нет:

Отправить комментарий