1. Мы продолжаем публиковать интересные статьи на тему SocialEngine 4. Одна из статей посвящена правильному выбору сервера для вашей социальной сети, а другая содержит советы по увеличению производительности платформы. Также мы добавили большую статью о пользовательских уровнях. Ознакомиться со статьями вы можете в разделе Вопросы и Ответы SocialEngine 4.
  2. Вам кажется, что ваша версия SocialEngine 4, работает медленно?

    Голосуйте. Пишите свою версию системы, железо на чем работает и количество пользователей. Будем увеличивать производительность :-) Подробнее

  3. В связи с участившимися случаями попыток продажи пользователями форума различных "сборок" коммерческих социальных платформ, обычно основанных на SocialEngine 3, вводится новое правило для форума. Запрещается создание тем или размещение в уже созданных предложений о продаже или размещение ссылок на сайты, где происходит продажа "сборок". Пользователи, которые продолжат свою коммерческую деятельность в данном направлении, будут заблокированы. Подробнее.

Question Авторизация через ВКонтакте

Discussion in 'Прочая Поддержка - Help Requests' started by Alpert108, Mar 20, 2012.

  1. Alpert108 Thread starter User


    Offline
    Message Count:
    132
    Likes Received:
    14
    My version of SE:
    3.20
    Всем привет!
    Реальной ли сделать авторизацию через соц.сеть "ВКонтакте" для SE 3.20???
    Жду ваших ответов ;)
  2. berdyev Famous member


    Offline
    • Знаменитый
    Message Count:
    339
    Likes Received:
    104
    My version of SE:
    3.15
    My version of phpFox:
    3.0.1
    My version of Oxwall:
    1.3.0
    Ответ - Да.

    :caitious:
    Alpert108 likes this.
  3. Alpert108 Thread starter User


    Offline
    Message Count:
    132
    Likes Received:
    14
    My version of SE:
    3.20
    Подскажите как это реализовать?
  4. Sn+ User


    Offline
    • Знаменитый
    Message Count:
    377
    Likes Received:
    76
    My version of SE:
    3.20
    My version of phpFox:
    3.0.0
    Шаг 1.
    Отправляем запрос на адрес http://vk.com/login.php и передаем следующие параметры:
    emailАдрес эл. почты пользователя
    passЕго пароль от ВК
    NSURL *url = [NSURL URLWithString:
    [NSString stringWithFormat @"http://vk.com/login.php?email=%@&pass=%@",
    EMAIL,
    PASSWORD]];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    NSData *empty_request = [NSURLConnectionsendSynchronousRequest: request
    returningResponse: nil
    error:nil];
    Шаг 2.
    Далее, нам нужно получить исходный код все той же страницы авторизации(http://vk.com/login.php), но уже с другими параметрами:
    appID вашего приложения
    layoutТип дизайна страницы авторизации
    typeСпособ передачи значение сессии
    settingsТребуемые права доступа
    layout и type — стандартные параметры, их менять не стоит.
    Затем, в HTML-​коде ищем значение переменной auth_hash.
    // Получаем исходный код страницы
    NSString *stringURL = [NSStringstringWithFormat @"http://vk.com/login.php?app=%@&layout=popup&type=browser&settings=%@",
    api_id,
    settings];
    NSURL *url = [NSURL URLWithString:stringURL];
    NSRequest *request = [NSURLRequest requestWithURL:url];
    NSData *raw_data = [NSURLConnection sendSynchronousRequest: request
    returningResponse:nil
    error:nil];
    NSString *pageSource = [[NSString alloc] initWithData:raw_data encoding: NSASCIIStringEncoding];

    // Ищем переменную auth_hash
    // Реализация функции getStringBetweenStrings - в прилагаемом исходном файле

    NSString *auth_hash = getStringBetweenStrings(@"var auth_hash = \'",@"\';",pageSource);
    Шаг 3
    И снова отправляем запрос на авторизацию. Там все понятно — приведу только пример кода.
    NSString *string = [NSString stringWithFormat:
    @"http://vk.com/login.php?act=a_auth&;app=%@&hash=%@&permanent=1",
    api_id,
    auth_hash];
    NSURL *url = [NSURL urlWithString:string];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    NSData *tempContainer = [NSURLConnectionsendSynchronousRequest: request
    returningResponse:nil
    error:nil];
    tempContainer — объект с параметрами сесии в виде JSON строки. Распарсить его можно, например, при помощи JSONKit:
    #import "JSONKit.h"

    JSONDecoder *decoder = [JSONDecoder decoder];
    NSDictionary *params = [decoder parseJSONData:tempContainer];
    Вот и весь процесс авторизации. В любом случае, рекомендую прочитатьоригинальную статью про авторизацию Desktop-​приложений ВКонтакте.В следующей части статьи будет рассмотрено непосредственно взаимодействие с API ВКонтакте.

    Attached Files:

  5. Alpert108 Thread starter User


    Offline
    Message Count:
    132
    Likes Received:
    14
    My version of SE:
    3.20
    что то всё разбросано,а поподробней?)
  6. Alpert108 Thread starter User


    Offline
    Message Count:
    132
    Likes Received:
    14
    My version of SE:
    3.20
    Ну что,подскажет кто нибудь???

Share This Page

All rights reserved SocEngine.ru ©