I have a Power BI dashboard that I need to automate data export from. I can not share the dashboard link (sorry for this). There is a table in this dashboard that I want to export data from.
I found a network request link that exports the data:
https://0ae61e1907c81e4bab6d648ee58410f4-api.analysis.windows.net/export/xlsx.
I copied this request as cURL (bash) and tested it in Postman, and it works perfectly. However, the issue I’m facing is that the token, activityid, and requestid parameters expire every 2 hours. Here is a snippet of the cURL command:
'accept': 'application/json, text/plain, */*',
'accept-language': 'en-US,en;q=0.9',
'activityid': '082f2644-aefc-47ca-816c-703e540e4368',
'authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik1HTHFqOThWTkxvWGFGZnBKQ0JwZ0I0SmFLcyIsImtpZCI6Ik1HTHFqOThWTkxvWGFGZnBKQ0JwZ0I0SmFLcyJ9.eyJhdWQiOiJodHRwczovL2FuYWx5c2lzLndpbmRvd3MubmV0L3Bvd2VyYmkvYXBpIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvMGFlNTFlMTktMDdjOC00ZTRiLWJiNmQtNjQ4ZWU1ODQxMGY0LyIsImlhdCI6MTcxOTgxODU1OCwibmJmIjoxNzE5ODE4NTU4LCJleHAiOjE3MTk4MjMxNTMsImFjY3QiOjAsImFjciI6IjEiLCJhaW8iOiJFMmRnWUlqZUZYSnFnbytXd3FUNGtJbjZvdThETFE4L25HQWF2c3ZiamVObW5hTnFybFBwaStQU2dzVnVtaE5LYXhUTmZIamFBUT09IiwiYW1yIjpbInB3ZCIsInJzYSJdLCJhcHBpZCI6Ijg3MWMwMTBmLTVlNjEtNGZiMS04M2FjLTk4NjEwYTdlOTExMCIsImFwcGlkYWNyIjoiMCIsImRldmljZWlkIjoiNjhjZDkyM2EtNzcwZi00ZGM5LWI3NTEtZDZlNDE3MDBkYWZkIiwiZmFtaWx5X25hbWUiOiJOZ3V5ZW4gVGhpIE5odSIsImdpdmVuX25hbWUiOiJUdXllbiIsImlkdHlwIjoidXNlciIsImlwYWRkciI6IjQ1LjExMi4zOC4xMDYiLCJuYW1lIjoiTmd1eWVuIFRoaSBOaHUgVHV5ZW4gKFNPL09QTTMyLVZIKSIsIm9pZCI6ImRmOWU3MjdhLWQzM2QtNDY1OC04NWUzLTZmNzliMmMyZDU5OCIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0zMTI4MDE5NDM2LTk5MzIxNzkyMy00MjUyOTEwNDQ1LTE0OTExNzQiLCJwdWlkIjoiMTAwMzIwMDM0OEFBNzM0NiIsInJoIjoiMC5BU0VBR1I3bENzZ0hTMDY3YldTTzVZUVE5QWtBQUFBQUFBQUF3QUFBQUFBQUFBQWhBQWsuIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic2lnbmluX3N0YXRlIjpbImR2Y19tbmdkIiwiZHZjX2RtamQiLCJpbmtub3dubnR3ayIsImttc2kiXSwic3ViIjoiS1dzQWp5NWJTdDFGX2tRRFJPOENMWEF1VGJjVmxKTXJCZTVnYy0tVU0wdyIsInRpZCI6IjBhZTUxZTE5LTA3YzgtNGU0Yi1iYjZkLTY0OGVlNTg0MTBmNCIsInVuaXF1ZV9uYW1lIjoidW51OWhjQGJvc2NoLmNvbSIsInVwbiI6InVudTloY0Bib3NjaC5jb20iLCJ1dGkiOiJqUzc2VHdUbEZVeTQxVXJsV29hR0FBIiwidmVyIjoiMS4wIiwid2lkcyI6WyJiNzlmYmY0ZC0zZWY5LTQ2ODktODE0My03NmIxOTRlODU1MDkiXSwieG1zX2lkcmVsIjoiMSA0In0.GIaLMvN8HgAjhcNt9VVlLOQPAPOEAROGp8sirENRwDzlpgDia_aUQYkEHFJqktwjMUtC7GosZK6R3B_Y2l8O5RXddeE8eXTizBAUsaegg1h7MDdY-mZ4lABldcg_r4VJQ98YINPUA0USih_w3mdA96UKH9aj1bAzn3oqeGa6yjx-Urva6SHt1_3Wo8gYOjO8mr6ipQvZM66cZCQ_oByr_POjUqV7TAu_yRQ_JpSxEX6we7Ou1oYiywbiDuIinw-mQjD2p47e3rXGXbIdfyS_h0WlQ2yOgfCt5TVVnSobUyITzfyZFA10GNLgZ4qD1RR04-9GaSsgBfC6IJc82DdAFw',
'content-type': 'application/json;charset=UTF-8',
'dnt': '1',
'origin': 'https://app.powerbi.com',
'priority': 'u=1, i',
'referer': 'https://app.powerbi.com/',
'requestid': '84f4cf14-a5ab-0591-5547-699159d3e1e4',
My Questions:
How can I handle the expiring token, activityid, and requestid to ensure my automation script runs smoothly?
Is there a way to programmatically refresh these parameters? If so, what would be the best approach or library to use in Python?
Any help or pointers would be greatly appreciated!
Additional Context:
I am using Selenium with Microsoft Edge WebDriver but it does not work.
I prefer using Python for scripting.
Thank you!
Nhu Tuyen Nguyen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.