如何使用TD Ameritrade api使用python创建观察列表?

2024-06-16 14:56:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望有人能帮我解决这个问题。我在这里看到了很多关于这个api的帖子,并且已经阅读了几乎所有我能阅读的内容。我在任何地方都找不到任何与为TD Ameritrade api创建观察列表相关的代码示例。我看了一些视频,从其他程序员的GitHub代码中提取了一些片段和部分,试图拼凑出一些其他有用的东西,或者用它来理解正在发生的事情,但我运气不好。我正在尝试创建一个观察列表,我可以添加标记。也许我不理解“创建观察列表”的实际作用。但是,我不断遇到错误403“您没有访问此资源的权限”。我已获得授权,可以获取帐户信息并获取我已有的观察列表。但是,我似乎无法发布到观察名单。我已经用谷歌搜索出了这些废话,但我一直在努力寻找答案。我对编码还不熟悉,所以我知道我并不是什么都懂。总的来说,td并没有提供很多关于api的信息,这是非常令人沮丧的,但更令人沮丧的是,我似乎无法找到这段代码在任何地方的外观。如何使用python中的td api成功创建观察列表?欢迎任何指点或帮助

url = r"https://api.tdameritrade.com/v1/oauth2/token"

headers = {"Content-Type":"application/x-www-form-urlencoded"}

payload = {'grant_type': 'authorization_code',
           'access_type': 'offline',
           'code': parse_url,
           'client_id':client_id,
           'redirect_uri':'redirecturlhere'}

authReply = requests.post(url, headers = headers, data=payload)

decoded_content = authReply.json()
access_token = decoded_content['access_token']

headers = {'Authorization': "Bearer {}".format(access_token)}

endpoint = r"https://api.tdameritrade.com/v1/accounts/"

content = requests.get(url = endpoint, headers = headers)
data = content.json()
account_id = data[0]['securitiesAccount']['accountId']

endpoint = r"https://api.tdameritrade.com/v1/accounts/{accountnumber}/watchlists"

使用此行上方的.format(account_id)我得到错误415不支持的媒体类型。所以,我现在一直在填写帐号

payload = {"name": "List", "watchlistItems": 'IVR'}
headers = {'Authorization': "Bearer {}".format(access_token),
           'Content-type':'application/json'}
content = requests.post(url = endpoint, headers = headers, data=payload)
print(content)
data = content.json()

Tags: 代码httpstokenapiidjsonurl列表