За последние 24 часа нас посетили 22438 программистов и 1147 роботов. Сейчас ищут 623 программиста ...

Авторизация через фейсбук для DLE [за деньги]

Тема в разделе "PHP Free-Lance", создана пользователем ericsoft, 19 май 2017.

  1. ericsoft

    ericsoft Активный пользователь

    С нами с:
    24 апр 2015
    Сообщения:
    13
    Симпатии:
    1
    Всем здравствуйте.
    Прошу помощи, ибо своих знаний не хватает.
    Слетела авторизация с помощью фейсбук, движок сайта DLE 10.3, пользуюсь модулем VAuth 8 free. При попытке авторизоваться попадаю на пустую страницу со ссылкой вида:
    При этом авторизация через остальные сети работает исправно, подозреваю, что проблема в API Facebook.
    Связался с разработчиком модуля, но тот ответил, что работа над ним прекращена и помочь он не может.
    Вот код файла, отвечающего за авторизацию
    PHP:
    1. <?php
    2.  
    3. if( ! class_exists( 'FbFunctions' ) )    {
    4.  
    5.     class FbFunctions extends VAuthFunctions {
    6.  
    7.         function oauth_data() {
    8.    
    9.             global $site_url;
    10.             global $vauth_config;
    11.        
    12.             $oauth = array();
    13.             $oauth['needfriends'] = 'no';
    14.             $oauth['needhash'] = 'yes';
    15.             $oauth['prefix'] = 'fb';
    16.             $oauth['prefix2'] = 'facebook';
    17.             $oauth['disconnect_str']     =    "updtime='', ".$oauth['prefix']."_user_friends='', ".$oauth['prefix']."_connected='0', ".$oauth['prefix']."_user_id=''";
    18.             $oauth['fields']            =    'user_birthday,user_status,email,public_profile';
    19.             $oauth['auth_url']            =    'https://www.facebook.com/v2.3/dialog/oauth?client_id=';
    20.             $oauth['app_id']            =    $vauth_config['facebook_app_id'];
    21.             $oauth['app_secret']        =    $vauth_config['facebook_app_secret'];
    22.             $oauth['redirect_url']        =    $site_url . '/engine/modules/vauth/auth.php?auth_site=facebook';
    23.             $oauth['token_request']        =    'https://graph.facebook.com/v2.3/oauth/access_token?client_id=';
    24.             $oauth['site_url']            =    $site_url;
    25.             $oauth['group']                =    $vauth_config['facebook_user_group'];
    26.  
    27.             if (empty($oauth['group'])) $oauth['group'] = 4;
    28.             if (empty($oauth['app_id'])) die('Не указан идентификатор приложения Facebook');
    29.             if (empty($oauth['app_secret'])) die('Не указан секретный код приложения Facebook');
    30.        
    31.             return $oauth;
    32.        
    33.         }    
    34.  
    35.    
    36.  
    37.         // ** Функция авторизации в Facebook
    38.         function vauth_auth($oauth) {
    39.    
    40.             global $auth_code;
    41.    
    42.             $_SESSION['auth_from']    =    'facebook';
    43.        
    44.             if     ( empty($oauth['access_token']) and empty($auth_code) ) {
    45.                 header('Location: '.$oauth['auth_url'].$oauth['app_id'].'&redirect_uri='.$oauth['redirect_url'].'&fields='.$oauth['fields']);
    46.                 die;
    47.             }
    48.        
    49.             if ( !empty($auth_code) ) {
    50.            
    51.                 parse_str($this->vauth_get_contents($oauth['token_request'].$oauth['app_id'].'&redirect_uri='.$oauth['redirect_url'].'&client_secret='.$oauth['app_secret'].'&code='.$auth_code));
    52.                 $oauth['access_token'] = $access_token;    
    53.                 if (!empty($oauth['access_token'])) $_SESSION['facebook_access_token']    =    $oauth['access_token']; else { die($my_little_url);header('Location: '.$oauth['site_url']); die(); }
    54.        
    55.             }
    56.        
    57.             return $oauth;
    58.        
    59.         }
    60.  
    61.         // ** Функция получения информации пользователя из Facebook
    62.         function get_oauth_info($oauth) {
    63.    
    64.             global $vauth_text;
    65.             global $db;
    66.             global $site_url;
    67.        
    68.             $oauth_info        =    json_decode($this->vauth_get_contents('https://graph.facebook.com/v2.3/me?access_token='.$oauth['access_token']),FALSE); //Получаем информцию о пользователе
    69.        
    70.             $oauth['uid']        =    $this->conv_it($oauth_info->id);
    71.             $oauth['name']        =    $this->conv_it($oauth_info->name); //Имя и фамилия
    72.             $oauth['nick']        =    $this->conv_it($oauth_info->username); //Логин
    73.             $oauth['birthday'] =    $this->conv_it($oauth_info->birthday); //Логин
    74.             $oauth['birthday'] =    str_replace('/','.',$oauth['birthday']);
    75.             $oauth['location']        =    $this->conv_it($oauth_info->location->name); //Местоположение
    76.             $oauth['last_name']    =    $this->conv_it($oauth_info->last_name); //Фамилия
    77.             $oauth['first_name']    =    $this->conv_it($oauth_info->first_name); //Имя
    78.             $oauth['email']        =    $this->conv_it($oauth_info->email); //Мыло
    79.                    
    80.             $oauth['username']    =    $oauth['first_name']  . ' ' .  $oauth['last_name'];
    81.             $oauth['fullname']    =    $oauth['username'];
    82.             $oauth['bio']        =    $db->safesql( trim( htmlspecialchars( strip_tags( $oauth['bio'] ) ) ) );
    83.             $oauth['name']        =    $db->safesql( trim( htmlspecialchars( strip_tags( $oauth['name'] ) ) ) );
    84.             $oauth['nick']        =    $db->safesql( trim( htmlspecialchars( strip_tags( $oauth['nick'] ) ) ) );
    85.             $oauth['quotes']    =    $db->safesql( trim( htmlspecialchars( strip_tags( $oauth['quotes'] ) ) ) );
    86.             $oauth['location']    =    $db->safesql( trim( htmlspecialchars( strip_tags( $oauth['location'] ) ) ) );
    87.        
    88.             $oauth['update_time']    =    time();
    89.        
    90.             return $oauth;
    91.         }
    92.     }
    93. }
    94.  
    95. $vauth_api = new FbFunctions ();        
    96.    
    97. ?>
    Очень прошу помощи
     
    #1 ericsoft, 19 май 2017
    Последнее редактирование модератором: 19 май 2017
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    После чего слетела то?
     
  3. ericsoft

    ericsoft Активный пользователь

    С нами с:
    24 апр 2015
    Сообщения:
    13
    Симпатии:
    1
    Вероятно после обновления API Фейсбук, трудно сказать
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    @ericsoft в урле API указана версия 2.3 и она не могла измениться. Но в любом случае, вам нужно обновлять авторизацию, поскольку эта версия в июле перестанет работать: https://developers.facebook.com/docs/apps/changelog
    Так что если вдруг аутентификация перестала работать, значит что-то изменилось на сайте или хостинге.
     
  5. ericsoft

    ericsoft Активный пользователь

    С нами с:
    24 апр 2015
    Сообщения:
    13
    Симпатии:
    1
    Пробовал создавать новое приложение с теми же параметрами, в версии 2.9, прописывал ссылки в файле, результат тот же.
    Бьюсь второй день, но ни к чему не пришел((
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    @ericsoft сорян не заметил, что топик в разделе "сделайте за меня" ;)
     
  7. ericsoft

    ericsoft Активный пользователь

    С нами с:
    24 апр 2015
    Сообщения:
    13
    Симпатии:
    1
    @vs ...ибо своих знаний не хватает((( Готов платить, если придется
     
  8. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    а в первом посте содержимое файла auth.php? а то получается что запрос не отправляется на фейссбук.. я с фейсбуком не работал.. но похожее когда то делал)
     
  9. ericsoft

    ericsoft Активный пользователь

    С нами с:
    24 апр 2015
    Сообщения:
    13
    Симпатии:
    1
    Нет, это facebook_functions.php
     
  10. ericsoft

    ericsoft Активный пользователь

    С нами с:
    24 апр 2015
    Сообщения:
    13
    Симпатии:
    1
    Никто не поможет, да?
     
  11. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    лучше открыть тему в разделе free-lance возможно кто-то сможет сделать за деньги
     
  12. ericsoft

    ericsoft Активный пользователь

    С нами с:
    24 апр 2015
    Сообщения:
    13
    Симпатии:
    1
    А перенести тему можно? Чтоб не дублировать и не засорять форум
     
    denis01 нравится это.
  13. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    denis01 нравится это.
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    а мне сделаешь?
     
  15. K4zBeK

    K4zBeK Зэк
    [ БАН ]

    С нами с:
    23 май 2017
    Сообщения:
    12
    Симпатии:
    0
    Сделаю за 1000 руб., оплата qiwi или сбер, обращайтесь skype: omg.wtf.damn
     
  16. cool4ik

    cool4ik Новичок

    С нами с:
    2 июн 2017
    Сообщения:
    1
    Симпатии:
    3
    Проще было бы обновить DLE до актуальной версии 11.3, в которой уже исправлена авторизация на фейсбуке "из коробки" без сторонних модулей. Заодно подлатаете "дырки" найденные за весь период до выхода новых версий.
     
    igordata, [vs] и denis01 нравится это.