Upload files to "/"
This commit is contained in:
@@ -0,0 +1,63 @@
|
|||||||
|
import requests
|
||||||
|
import adal
|
||||||
|
|
||||||
|
def get_access_token(client_id, client_secret):
|
||||||
|
authority_url = 'https://login.microsoftonline.com/mathworks.onmicrosoft.com'
|
||||||
|
context = adal.AuthenticationContext(
|
||||||
|
authority_url,
|
||||||
|
validate_authority=True,
|
||||||
|
api_version=None
|
||||||
|
)
|
||||||
|
token = context.acquire_token_with_username_password(
|
||||||
|
# token = context.acquire_token_with_client_credentials(
|
||||||
|
resource='https://analysis.windows.net/powerbi/api',
|
||||||
|
username= username,
|
||||||
|
password= password,
|
||||||
|
# client_secret= secret_id,
|
||||||
|
client_id= client_id,
|
||||||
|
# scope= 'openid',
|
||||||
|
# tenant= 'mathworks.onmicrosoft.com',
|
||||||
|
)
|
||||||
|
access_token = token['accessToken']
|
||||||
|
return (access_token)
|
||||||
|
|
||||||
|
|
||||||
|
def get_embed_token(group_id, report_id, access_token):
|
||||||
|
dest = 'https://api.powerbi.com/v1.0/myorg/groups/' + group_id + '/reports/' + report_id + '/GenerateToken'
|
||||||
|
embed_url = 'https://app.powerbi.com/reportEmbed?reportId=' + report_id + '&groupId=' + group_id
|
||||||
|
headers = {'Authorization': 'Bearer ' + access_token}
|
||||||
|
settings = {'accessLevel': 'View',
|
||||||
|
'allowSaveAs': 'false'}
|
||||||
|
|
||||||
|
#vals.Add(new KeyValuePair<string, string>("grant_type", "password"));
|
||||||
|
#vals.Add(new KeyValuePair<string, string>("scope", "openid"));
|
||||||
|
#vals.Add(new KeyValuePair<string, string>("resource", "https://analysis.windows.net/powerbi/api"));
|
||||||
|
#vals.Add(new KeyValuePair<string, string>("client_id", ""));
|
||||||
|
#vals.Add(new KeyValuePair<string, string>("client_secret", ""));
|
||||||
|
#vals.Add(new KeyValuePair<string, string>("username", ""));
|
||||||
|
#vals.Add(new KeyValuePair<string, string>("password", ""));
|
||||||
|
|
||||||
|
response = requests.post(dest, data=settings, headers=headers)
|
||||||
|
print('Embed token response: ', response.status_code, response.reason, response.text)
|
||||||
|
token = response.json().get('token')
|
||||||
|
return {'token': token, 'embed_url': embed_url, 'report_id': report_id}
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
client_id = '**********'
|
||||||
|
secret_id = '********'
|
||||||
|
group_id = '********'
|
||||||
|
report_id = '*********'
|
||||||
|
password = '******'
|
||||||
|
username = '********'
|
||||||
|
|
||||||
|
# First we get the access token for our app (?)
|
||||||
|
access_token = get_access_token(client_id, secret_id)
|
||||||
|
print('access token: {}'.format(access_token))
|
||||||
|
|
||||||
|
# Then we get an embed token so we can "embed" on a web page (?)
|
||||||
|
embed_token = get_embed_token(group_id, report_id, access_token)
|
||||||
|
print('embed token response', embed_token)
|
||||||
|
|
||||||
|
# Then we can use javascript on our web page to embed the controls/data
|
||||||
|
# (TBD)
|
||||||
Reference in New Issue
Block a user