PDA

Просмотр полной версии : авторизация и sin_sha256


PitBullko
31.01.2014, 00:52
Здравствуйте. Хочу написать сервис отправки icq-сообщений с сайта. За основу взял web-icq, посмотрел заголовки, все понятно, кроме одного есть переменная sig_sha256, которую мне непонятно откуда взять.

Читал много форумов, нашел ответ, что эта переменная генрируется так:


Code:
$sessionkey = base64_encode(hash_hmac('sha256', 'пароль', 'sessionsecret', true));
$sig_sha256 = base64_encode(hash_hmac('sha256', $sessionkey, urlencode('GET-запрос'), true));

Но как бы я не старался - не получается подобрать правильный хэш.

Исходные данные:

пароль = "A12345";

$sessionsecret = VphV8sTeOfcRpxRs;

строка запроса = "GET&http://api.icq.net/aim/startSession?a=%2FwQAAAAAAACBzNTZhSF%2FZYncgXwYMum memWPCUxPnHkJmo9a8LmVK38E0vPVFp%2BupOkE2qL5gF%2BkS e0C3rOh%2FFlsw8j9a3y07dsbrG1Aep2UynCWgZ4DOScABndof NhWsvuA%2Bgd2EwXQDpBjZl5MWUmd6JfTnsMsew9oVdBfxo0D2 70dFk9dwosTzLc%3D&assertCaps=0946134E4C7F11D18222444553540000&buildNumber=410&clientName=gromit&clientVersion=v0.1&events=myInfo%2Cpresence%2Cbuddylist%2Ctyping%2Cim %2CsentIM%2CdataIM%2CofflineIM%2CuserAddedToBuddyL ist%2Clifestream%2Cservice&f=xml&interestCaps=8eec67ce70d041009409a7c1602a5c84&k=ic1Fvhd7u8Msuxui&language=ru-ru&rawMsg=1&sessionTimeout=60&ts=1391111100"

Что должно из этого получиться:

sig_sha256=3uQwCJijVG6PhLrCq5QaPt%2FztDZwnZfdmIH71 1m6TtA%3D

После этого я должен получить ответ с кодом сессии, но пока что результат - 401Authentication Required. statusDetailCode 100110011391111376

Буду благодарен за любую помощь

alkos
31.01.2014, 07:32
Зачем снова изобретать велосипед? Есть готовое решение: WebIcqPro.class.php. Подключаешь этот класс к своей программе и в путь.

Выглядеть все будет примерно так:


Code:
connect(UIN, PASSWORD)) {
exit($icq->error . "\n");
}

// шлем сообщение на номер 100500
$icq->sendMessage('100500', 'Привет!');

}

$icq->disconnect();
?>

PitBullko
31.01.2014, 13:53
Ну ё-маё! вчера пробовал этот класс, он писал мне то refused то establish, менял порты и адреса не помогало.

А сегодня уже все работает.

Заработался я видимо