1+ '''
2+ The TRKD API sample code is provided for informational purposes only
3+ and without knowledge or assumptions of the end users development environment.
4+ We offer this code to provide developers practical and useful guidance while developing their own code.
5+ However, we do not offer support and troubleshooting of issues that are related to the use of this code
6+ in a particular environment; it is offered solely as sample code for guidance.
7+ Please see the Thomson Reuters Knowledge Direct product page at http://customers.thomsonreuters.com
8+ for additional information regarding the TRKD API.'''
9+
10+
11+ import os
12+ import sys
13+ import requests
14+ import json
15+ import getpass
16+
17+ ## Perform authentication
18+ def CreateAuthorization (username , password , appid ):
19+ token = None
20+ ##create authentication request URL, message and header
21+ authenMsg = {'CreateServiceToken_Request_1' : { 'ApplicationID' :appid , 'Username' :username ,'Password' :password }}
22+ authenURL = 'https://api.trkd.thomsonreuters.com/api/TokenManagement/TokenManagement.svc/REST/Anonymous/TokenManagement_1/CreateServiceToken_1'
23+ headers = {'content-type' : 'application/json;charset=utf-8' }
24+ print '############### Sending Authentication request message to TRKD ###############'
25+ try :
26+ ##send request
27+ result = requests .post (authenURL , data = json .dumps (authenMsg ), headers = headers )
28+ if result .status_code == 200 :
29+ print 'Authen success'
30+ print 'response status %s' % (result .status_code )
31+ ##get Token
32+ token = result .json ()['CreateServiceToken_Response_1' ]['Token' ]
33+ elif result .status_code == 500 :
34+ print 'Request fail'
35+ print 'response status %s' % (result .status_code )
36+ print 'Error: %s' % (result .json ())
37+ except requests .exceptions .RequestException as e :
38+ print 'Exception!!!'
39+ print e
40+ sys .exit (1 )
41+
42+ return token
43+
44+ ## Perform Quote request
45+ def RetrieveQuotes (token ,appid ):
46+ quoteURL = 'https://api.trkd.thomsonreuters.com/api/Quotes/Quotes.svc/REST/Quotes_1/RetrieveItem_3'
47+ headers = {'content-type' : 'application/json;charset=utf-8' ,'X-Trkd-Auth-ApplicationID' : appid , 'X-Trkd-Auth-Token' : token }
48+ quoteRequestMsg = {
49+ 'RetrieveItem_Request_3' : {
50+ 'TrimResponse' : False ,
51+ 'ItemRequest' : [
52+ {
53+ 'Fields' : 'CF_LAST:CF_HIGH:CF_LOW:CF_BID:CF_ASK:CF_YIELD:CF_DATE:CF_TIME:CF_VOLUME:CF_CLOSE:CF_OPEN:CF_NAME' ,
54+ 'RequestKey' : [
55+ {
56+ 'Name' : 'VOD.L' ,
57+ 'NameType' : 'RIC'
58+ }
59+ ],
60+ 'Scope' : 'List' ,
61+ 'ProvideChainLinks' : True
62+ }
63+ ]
64+ }
65+ }
66+ print '############### Sending Quote request message to TRKD ###############'
67+ try :
68+ ##send request
69+ quoteresult = requests .post (quoteURL , data = json .dumps (quoteRequestMsg ), headers = headers )
70+ if quoteresult .status_code == 200 :
71+ print 'Quote request success'
72+ print quoteresult .json ()
73+ else :
74+ print 'Request fail'
75+ print 'response status %s' % (quoteresult .status_code )
76+ print 'Error: %s' % (quoteresult .json ())
77+
78+ except requests .exceptions .RequestException as e :
79+ print 'Exception!!!'
80+ print e
81+ sys .exit (1 )
82+
83+
84+ ## ------------------------------------------ Main App ------------------------------------------ ##
85+ ##Get username, password and applicationid
86+ username = raw_input ('Please input username: ' )
87+ ##use getpass.getpass to hide user inputted password
88+ password = getpass .getpass (prompt = 'Please input password: ' )
89+ appid = raw_input ('Please input appid: ' )
90+
91+ token = CreateAuthorization (username ,password ,appid )
92+ print 'Token = %s' % (token )
93+
94+ RetrieveQuotes (token ,appid )
95+
96+
97+
98+
99+
100+
101+
102+
103+
104+
105+
106+
107+
108+
0 commit comments