コード例 #1
0
ファイル: api.py プロジェクト: Esteban-Rocha/digsby
def get_login_cookie(login, password, api="icq.net", api2=None):
    if api2 is None:
        api2 = api
    r = get_login_data(login, password, api2)
    sessionSecret = r["response"]["data"]["sessionSecret"]
    token = r["response"]["data"]["token"]["a"]
    sessionKey = hmac_sha256_base64(sessionSecret, password)
    uri = "https://api.oscar.%s/aim/startOSCARSession" % api

    d = dict(a=token, f="json", k=ICQ_API_KEY, ts=r["response"]["data"]["hostTime"], useTLS=1)

    queryString = WebFormData(d=LazySortedDict(d)).replace("+", "%20")
    hashData = "GET&" + urllib.quote(uri, safe="") + "&" + queryString.encode("url")

    digest = hmac_sha256_base64(hashData, sessionKey)

    url = uri + "?" + queryString + "&sig_sha256=" + digest
    ret = simplejson.loads(wget(url))
    return ret