Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Romzes

Настройка API SiteHeart (IPB 3.1.2)

Рекомендованные сообщения

Здравствуйте, вот есть сайт siteheart.com(Не реклама) на нем можно настроить APi чат что бы все ники/аватары/Емейлы отображались когда они будут писать мне в чат. Только вот я не могу разобраться что и как куда вставлять нужно. Вот там написано:

Используя это API Вы сможете:

 

  • Отображать ник и фото клиента в чате
  • Передавать любую информацию о клиенте операторам в чат
  • Сохранять историю переписки с клиентом

Что бы передать любую информацию о клиенте, необходимо добавить параметр auth в код виджета

 

Пример кода виджета JavaScript

 

<script  type="text/javascript">

_shcp = []; _shcp.push({widget_id : 5, widget : "Chat", auth : "$auth" });

(function() { var hcc = document.createElement("script"); hcc.type = "text/javascript"; hcc.async = true;
hcc.src = ("https:" == document.location.protocol ? "https" : "http")+"://siteheart.com/apps/js/sh.js";
var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hcc, s.nextSibling); })();
</script>

 

Для формирования параметра auth необходим секретный ключ и массив данных о клиенте

 

Пример массива данных о клиенте (PHP)

 

$user = array(
'nick' => 'Dmitry',
'avatar' => 'http://graph.facebook.com/412831238798731/picture',
'id' => '18', 
'email' => 'usermail@gmail.com',
'data' => {} 
);

 

где:

 

  • nick - ник пользователя
  • avatar - аватар пользователя
  • id - уникальный идентификатор пользователя на вашем сайте
  • email - E-mail пользователя
  • data - дополнительная информация о клиенте для операторов. Например data = {"login" : "demo", "status" : "active", "registred" : "2008/01/01"}

Пример формирования параметра auth (PHP)

 

$time = time();
$secret = "Secret key";
$user_base64 = base64_encode( json_encode($user) );
$sign = md5($secret . $user_base64 . $time);
$auth = $user_base64 . "_" . $time . "_" . $sign;

 

где:

 

  • $time - unixtime время по UTC
  • $secret - секретный ключ
  • $user_base64 - строка base64 от JSON с массивом данных о клиенте
  • $sign - md5 подпись запроса
  • $auth - зашифрованная строка которую необходимо вставить в код виджета (параметр auth)

 

Вот насчет JS Я понял куда его вставлять, а вот PHP коды куда вставлять и как правильно настроять под IPB так и не понял.

Поделиться сообщением


Ссылка на сообщение

Данные пользователя можете получить из массива $this->memberData. При помощью тегов формируете в php нужные параметры для js скрипта.

 

<php>
if( $this->memberData['member_id'] )
{
   $avatar = ($this->memberData['avatar_location'] AND $this->memberData['avatar_type'] == 'upload') ? "{$this->settings['board_url']}/uploads/{$this->memberData['avatar_location']}" : "";
   $user = array('nick'   => $this->memberData['members_display_name'],
                 'avatar' => $avatar,
                 'id'     => $this->memberData['member_id'],
                 'email'  => $this->memberData['email'],
                 'data'   => array()
   );

   $time = time();
   $secret = "Secret key";
   $user_base64 = base64_encode( json_encode($user) );
   $sign = md5($secret . $user_base64 . $time);
   $auth = $user_base64 . "_" . $time . "_" . $sign;
}
</php>

<script  type="text/javascript">

_shcp = []; _shcp.push({widget_id : 5, widget : "Chat", auth : "{$auth}" });

(function() { var hcc = document.createElement("script"); hcc.type = "text/javascript"; hcc.async = true;
hcc.src = ("https:" == document.location.protocol ? "https" : "http")+"://siteheart.com/apps/js/sh.js";
var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hcc, s.nextSibling); })();
</script>

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Получается при том когда я помещаю данных код в Стиль > Глобальные > globalTemplate Выходит вот такая ошибка:

 

Fatal error: Cannot use object of type ips_MemberRegistry as array in C:\AppServ\www\cache\skin_cache\cacheid_4\skin_global.php on line 87

Поделиться сообщением


Ссылка на сообщение

Точно, вместо $this->member нужно $this->memberData

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

А можно ли этот PHP код использовать не в дизайне, а допустим в каком то php файле который использован на всех страницах форума? Если да то можно пожалуйста имя этого php файла и в которой папке он лежит?

Поделиться сообщением


Ссылка на сообщение

А можно ли этот PHP код использовать не в дизайне, а допустим в каком то php файле

Смысл?

Поделиться сообщением


Ссылка на сообщение

Ну так то вроде работает, но аватар отображаться не хочет почему то..

Поделиться сообщением


Ссылка на сообщение

siv1987, Спасибо большое все разобрался во всем.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...