Skip to content

Ошибки авторизации через соцсети

ИПБ 3.4.6

 

Через Фейсбук нормально

Через Стим (с хуком) нормально

 

А твиттер и вконтакт проблемы.

Например при попытки авторизоваться через твиттер:

 

Fatal error: Class 'darkLAE' not found in /admin/sources/classes/output/publicOutput.php on line 2046

darkLAE где положено лежит.

В пабликОутпут.пхп:

 

           if ( ! ipsRegistry::$settings['use_friendly_urls'] )
           {
                return $url;
           }

           if(darkLAE::$settings['url_transliteration']) {
                $seoTitle = IPSText::makeSeoTransliterate( $seoTitle );
           }

           $_template           = FALSE;
           $seoTitle          = ( ! empty( $seoTitle ) && ! is_array( $seoTitle ) ) ? array( $seoTitle ) : $seoTitle;
           $_seoTitleForCache = ( is_array( $seoTitle ) ) ? implode( ';', $seoTitle ) : '';
           $_md5               = md5($url.$_seoTitleForCache.$seoTemplate);
           $_s                   = '';

           $cached = $this->getCachedFurl($_md5);

           if(!is_null($cached))
           {
               return $cached;
           }

Featured Replies

Используйте нулл, класс которого darkLAE подключен не во всех файлах где используется ядро форума с отдельной точкой входа от index.php (интерфейсы социальных сетей). Эта ошибка говорит не о том, что не существует файл, а о том что не объявлен такой класс.

Нахрена "нуллерам" вообще надо было выводить транслитерацию настройкой этого класса, была же специальная константа в локализованных версиях, ею уже надо было придерживаться и дальше.

  • Author

Если можно чуть подробнее, куда чего дописать. :unsure:

/admin/sources/classes/output/publicOutput.php

 

Перед

	if(darkLAE::$settings['url_transliteration']) {
			$seoTitle = IPSText::makeSeoTransliterate( $seoTitle );
		}

Доабвить

	if(!class_exists('darkLAE')){
		require_once IPS_ROOT_PATH . 'sources/base/darkLAE.php';
	}

  • Author

Fatal error: Class 'darkLAE' not found in /admin/sources/classes/output/formats/html/htmlOutput.php on line 617

 

Другая теперь:

 if (!darkLAE::$settings['ipboard_copyright_showing'])

/admin/sources/classes/output/formats/html/htmlOutput.php

 

Перед:

if (!darkLAE::$settings['ipboard_copyright_showing'])

Добавить:

if(!class_exists('darkLAE')){
	require_once IPS_ROOT_PATH . 'sources/base/darkLAE.php';
}

  • Author

О, уже ошибка на фоне форума. )

 

Есть проблема с настройками вашего Twitter-приложения. Пожалуйста, убедитесь, что в приложении указан правильный callback URL

[#0,717734]

  • Author

Всё !!! Отлично! Через твиттер зашёл!!! +1

__________________________________________

 

По Вконтакт проблема, нет иконки входа и авторизации, что может быть? там ввреху справа где фейсбук, стим и твиттер...

 

И если через профиль пытаешься связать, то Fatal error: Call to a member function membersVkontakteConnect() on a non-object in /var/www/ipb346/upload/admin/applications/core/extensions/usercpForms.php on line 1021

  • Author

Разобрался. У меня хук авторизации ВКонтакта не стоит, я его похоже удалил, когда что то другое настраивал. А потом назад не поставил, потому что его нет на компе у меня. И скачать где найти не могу.

 

У кого есть?

попробуй эти (искал тоже, нашел на просторах...):

vkontakte_1.0.1.xml

vkontakte_1.2.0.xml

Вконтакте это не просто отдельный хук, а целая интеграция. У вас не все файлы соответствует типу дистрибутива (интегрирован он только в версиях от ибр), и начать следует с вышеуказанного файла в ошибке.

  • Author

У меня он был интегрирован. ( Щас попробую.

membersVkontakteConnect это шаблон. Вот шаблоны добавляются через хук. Тут достаточно его переустановить из /admin/applications/core/xml/hooks/vkontakte.xml

  • Author

Все встало, интеграция как была. Первую стадию подключения продходит. Потом ошибка Fatal error: Call to undefined function curl_init() in /var/www/ipb346/upload/ips_kernel/vkontakte/OAuth2Client.php on line 456

 

цитата с 454 линии

protected function makeRequest($path, $method = 'GET', $params = array(), $ch = NULL) {
   if (!$ch)
     $ch = curl_init();

   $opts = self::$CURL_OPTS;
   if ($params) {
     switch ($method) {
       case 'GET':
         $path .= '?' . http_build_query($params, NULL, '&');
         break;
       // Method override as we always do a POST.
       default:
         if ($this->getVariable('file_upload_support')) {
           $opts[CURLOPT_POSTFIELDS] = $params;
         }
         else {
           $opts[CURLOPT_POSTFIELDS] = http_build_query($params, NULL, '&');

  • Author

попробуй эти (искал тоже, нашел на просторах...):

А папки с файлами не было для аплоадс? А то там кое где пару картинок не отображает похоже...

 

 

Не установлен модуль curl для php

Не исключено, буду разбираться.

Edited by DarthOld

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.