首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >某些json错误-基-64字符数组或字符串的无效长度

某些json错误-基-64字符数组或字符串的无效长度
EN

Stack Overflow用户
提问于 2022-08-23 18:59:54
回答 1查看 40关注 0票数 1

如果我运行这段代码,

代码语言:javascript
复制
conn = http.client.HTTPSConnection("api.icicidirect.com")
payload = json.dumps({})
#time_stamp & checksum generation for request-headers
time_stamp = datetime.utcnow().isoformat()[:19] + '.000Z'
checksum = hashlib.sha256((time_stamp+payload+API_SECRET).encode("utf-8")).hexdigest()
headers = {
    'Content-Type': 'application/json',
    'X-Checksum': checksum,
    'X-Timestamp': time_stamp,
    'X-AppKey': API_KEY,
    'X-SessionToken': Session_Token
}
conn.request("GET", "/breezeapi/api/v1/dematholdings", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

在提到documentationhttps://api.icicidirect.com/breezeapi/documents/index.html?python#dematholdings之后,我得到了{"Status":5,"Error":"Invalid length for a Base-64 char array or string."}

问题:我有遗漏什么吗?

EN

回答 1

Stack Overflow用户

发布于 2022-09-28 07:31:19

的工作方式如下

  1. 您必须使用他们的SSO -

登录

请求:https://api.icicidirect.com/apiuser/login?api_key=AppKey

响应:您将在URL中获得sessionkeyAPI_session

  1. 您必须使用点1.

中的sessionKey调用客户详细信息API。

然后你会得到这样的回应:

代码语言:javascript
复制
{
    "Success": {
        "exg_trade_date": {
            "NSE": "28-Sep-2022",
            "BSE": "28-Sep-2022",
            "FNO": "28-Sep-2022",
            "NDX": "28-Sep-2022"
        },
        "exg_status": {
            "NSE": "O",
            "BSE": "O",
            "FNO": "O",
            "NDX": "O"
        },
        "segments_allowed": {
            "Trading": "Y",
            "Equity": "Y",
            "Derivatives": "Y",
            "Currency": "Y"
        },
        "idirect_userid": "AF077290",
        **"session_token": "ABCwNzcyOTA6MTA5NDM3NTQ=",**
        "idirect_user_name": "APPADURAI   ARAVIND",
        "idirect_ORD_TYP": "",
        "idirect_lastlogin_time": "28-Sep-2022 12:53:51",
        "mf_holding_mode_popup_flg": "N",
        "commodity_exchange_status": "O",
        "commodity_trade_date": "28-Sep-2022",
        "commodity_allowed": "O"
    },
    "Status": 200,
    "Error": null
}

这里,Success.session_token是所有其他API调用必须使用的实际会话令牌。文件中也清楚地提到了这一点。

这是我的工作API

源代码可以在:https://github.com/Aravin/Algo-Trade上找到(在JavaScript中)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73463890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档