Как сгенерировать знак hmac в python 3 (icq auth)?
Мой код: http://pastebin.com/fuFxaxTT
и иметь ссылку:
http://api.icq.net/aim/startSession?f=json&language=ru&events=mchat%2CuserAddedToBuddyList%2Chist%2CimState%2Cbuddylist&includePresenceFields=aimId%2Cfriendly%2Cstate%2Cssl&sessionTimeout=2592000&ts=1486941017&k=ic17mFHiwr52TKrx&a=%252FwQAAAAAAAGM2*****OTVCDd%252BSNbxZMzUDE0FKQ3Dc2MCVL8DpHgHX8z8%252BWEK3UI6LmhnP362bl%252FluMpxZB033a6qvxSmIkiCsY%253D&view=online&invisible=false&mobile=0&sig_sha256=gI93nv8lo0n9t3*****6uSH43fKnQzPL8Yo=
но есть ошибка:
{"response":{"statusCode":401, "statusText":"Authentication Required. statusDetailCode 1014", "statusDetailCode":1014, "data":{"ts":1486941017}}}
Я нашел пример в nodejs - https://gist.github.com/foozzi/1382fce29b87bf2ea5544ca73a54a4d4, но где ошибка в моем коде?
1 ответ
Возможно, уже слишком поздно, но я только что успешно реализовал создание сессий на C# и могу поделиться некоторым опытом. В соответствии с исходным кодом клиентского рабочего стола ICQ они формируют подпись URL, немного отличающуюся, как показано ниже
"POST&" + UrlEncode(url) + "&" + UrlEncode("param1=UrlEncode(value1)¶m2=UrlEncode(value2)&...")
Так что я думаю, что вы пропустили url-кодирование в некоторых местах.