Hello,
I started using the refinitiv platform session API earlier today and while I am able to start a session and validate that it's been opened, any requests I make - rdp.get_snapshot, etc - return Nonetype objects. I'm assuming there's an issue of some kind with my configuration but I'm unclear as to what kind of error it is since the session appears to open fine. I am using refinitiv-dataplatform 1.0.0-alpha.9 with python 3.9.5.
Sample code:
session = rdp.open_platform_session(
app_key,
rdp.GrantPassword(
mach_id,
mach_pw
)
)
x = rdp.get_snapshot(
universe = ['GBP=','JPY='],
fields = ['BID','ASK']
)
print(x)
rdp.close_session()
Outputs
None
UserWarning: Unclosed <httpx.AsyncClient object at 0x7fe7108dc6a0>. See https://www.python-httpx.org/async/#opening-and-closing-clients for details.
Any help would be appreciated!
The fact you see the above insufficient scope message confirms you have a valid machineID and password and that you are authenticating correctly.
The issue is that you are not licenced for whichever data you are trying to request.
I have emailed you directly so I can check your credentials.
Please add the following line to help understand why you are receiving no data back.
print(x) print(rdp.get_last_status()) rdp.close_session()
The usual reason is that you are not licenced for the instruments you are requesting e.g. trial account.
you can also try requesting the delayed versions of the same RIC i.e.
universe = ['/GBP=','/JPY='],
If you are licenced for streaming data but not for fee-liable data (e.g. a trial account), then you should be able to get the above RICs.
You can also try the following - which uses the RDP Snapshot API - whereas the code above is using the Streaming interface to request a snapshot.
universe = ['EUR='] fields = ['ASK', 'BID'] response = rdp.Pricing.get_snapshot(universe, fields) print(response.data.df) print(response.status)
If you are not permissioned for either of the above, then you will need to contact your Refinitiv account representative to discuss your licence requirements.
Both this and the above option return the output {'http_status_code': 403, 'http_reason': 'Forbidden', 'error': {'id': '4d2b3603-221d-441b-b9f9-17873bfb1b5d', 'code': 'insufficient_scope', 'message': 'access denied. Scopes required to access the resource: [trapi.data.pricing.read]. Missing scopes: [trapi.data.pricing.read]', 'status': 'Forbidden'}}. I am using a trial account - would it be best to reach out to our account representative to ask about what apis we do have access to?
I am not part of the account/sales team - but I did try to check your email address and I don't see any Account Team contact against your details.
Did you actually receive a Welcome Email that contained a MachineID - which looks something like GE-A-xxxxxx-x-xxxx and a link to set a long password (30+ characters)?
If not, then all you may have is a basic My.Refinitiv login - which only allows access to the dev portal documentation, articles and tutorials.
If you want to discuss a free trial etc please use the Contact us | Refinitiv page and your query will be directed to the New Business Team.
Hi @umer.nalla , I have similar issue.
Can you explain what this error means ?
x = rdp.get_snapshot( universe = ['GBP=','JPY='], fields = ['BID','ASK'] ) print(x) print(rdp.get_last_status()) rdp.close_session()
None {'http_status_code': -1, 'http_reason': b"[Errno 10061] Connect call failed ('127.0.0.1', 9060)"}
Your error message looks quite different to the existing post - therefore, in that case, I would recommend starting a new post for a quick response. Old threads that have an accepted answer are not monitored by the moderators.
Your error message would suggest you are creating a Desktop session, but that the library cannot connect to the Eikon Data API proxy.
Do you have Eikon or Workspace open and running on the same physical PC where you are running the python script?
What response do you get to the following?
http://localhost:9000/ping?all
http://localhost:9060/ping?all
and also:
The topic is continued here: session open but queries return None / Empty DF using RDP library - Forum | Refinitiv Developer Community
I had a similar situation recently while working on a microservice based chatbot application, Django for the admin and Flask for the main app. Whenever I update a model instance in the database, the queue should ideally print the instance to my console, instead it returns a None.
The consumer on the Main flask app
params = pika.URLParameters('some URL') connection = pika.BlockingConnection(params) channel = connection.channel() channel.queue_declare(queue='main') def callback(ch, method, properties, body): print('Recieved in main') data = json.loads(body) print(data) if properties.content_type == 'product_created': product = Product(id=data['id'], title=data['title'], image=data['image']) # Create object with SQLAlchemy db.session.add(product) db.session.commit() print('Product Created') elif properties.content_type == 'product_updated': product = Product.query.get(data['id']) product.title = data['title'] product.image = data['image'] db.session.commit() print('Product Updated') elif properties.content_type == 'product_deleted': product = Product.query.get(data) db.session.delete(product) db.session.commit() print('Product Deleted') channel.basic_consume(queue='main', on_message_callback=callback, auto_ack=True) print('Started Consuming')
This issue returned no value and I don't know how to fix it. I have reached out to several chatbot development services provider but the exact outcome is not obtained.