cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Jamir
Frequent Visitor

How to get EmbedToken Generated using PostMan ? HTTP Error 400. The request hostname is invalid.

1. I was able to genrate Accesstoken using : (Works in postman)

 POST - https://login.microsoftonline.com/{{tenant_id}}/oauth2/token

 Header:

 Content-Type application/x-www-form-urlencoded

 Body:

 grant_type: client_credentials

 client_secret: {{client_secret}}

 client_id: {{client_id}}

 resource: https://analysis.windows.net/powerbi/api

(works fine)

 

2. Get EmbedToken (Does not work in postman):

    I could get the EmbedToken using link below.

    https://learn.microsoft.com/en-us/rest/api/power-bi/embed-token/datasets-generate-token-in-group

    (for our prototype, we will not want to use above step)

 

  Using Postman I have tried many different scenarios, it all fails

 

  POST - https://api.powerbi.com/v1.0/myorg/groups/{{groupId}}/reports/{{reportId}}/GenerateToken

  Header:

Authorization: Bearer {{temp_access_token}}

Host: <calculated when request is sent>

Content-Type: application/json

  Body:

{
"accessLevel": "View",
"allowSaveAs": "false"
}

 

  Result:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML>

<HEAD>
<TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii">
</HEAD>

<BODY>
<h2>Bad Request - Invalid Hostname</h2>
<hr>
<p>HTTP Error 400. The request hostname is invalid.</p>
</BODY>

</HTML>
 
3. Get Embed URL (Does not work in postman)
     This works:
      (for our prototype, we will not want to use above step)
 
Using Postman

POST -https://api.powerbi.com/v1.0/myorg/groups/{{groupId}}/reports

  Header:

Authorization: Bearer {{temp_access_token}}

 

Error:

{
"error": {
"code": "PowerBINotAuthorizedException",
"pbi.error": {
"code": "PowerBINotAuthorizedException",
"parameters": {},
"details": [],
"exceptionCulprit": 1
}
}
}
 
1 ACCEPTED SOLUTION
Jamir
Frequent Visitor

Finally, I made it work.. Here are all the details:

(I beleive my problem was with setting up Service Principal properly)

 

1. Access Token: POST

Header

Jamir_0-1664062616546.png

Body

Jamir_1-1664062650858.png

 

2. Embed Token: POST

Header

Jamir_2-1664062696666.png

 

Body

Jamir_3-1664062724198.png

 

3. EmbedReportURL: GET

     

Jamir_4-1664062752331.png

 

View solution in original post

3 REPLIES 3
Jamir
Frequent Visitor

Finally, I made it work.. Here are all the details:

(I beleive my problem was with setting up Service Principal properly)

 

1. Access Token: POST

Header

Jamir_0-1664062616546.png

Body

Jamir_1-1664062650858.png

 

2. Embed Token: POST

Header

Jamir_2-1664062696666.png

 

Body

Jamir_3-1664062724198.png

 

3. EmbedReportURL: GET

     

Jamir_4-1664062752331.png

 

Jamir
Frequent Visitor

hello @PBIuser2010 

 

Appreciate your response.

 

I did both, it still does not work, I get HTTP Error 400, The request hostname is invalid. Error.

 

Jamir_0-1663951959886.png

 

PBIuser2010
Frequent Visitor

Hello @Jamir ,

I had the same issue and adding these headers worked 

2022-09-23_11h16_59.png

 

URLhttps://api.powerbi.com/v1.0/myorg/groups/d...c5/reports/da9.....3/GenerateToken

Body: 

{
"accessLevel""View",
"allowSaveAs""false"
}
If it still doesn't work, click on run it in Embed Token - Reports GenerateTokenInGroup - REST API (Power BI Power BI REST APIs) | Microsoft Lear... add your group id, report id and copy paste the URl. It worked!

 

Helpful resources

Announcements
November 2022 Update

Check it Out!

Click here to read more about the November 2022 updates!

Microsoft 365 Conference â__ December 6-8, 2022

Microsoft 365 Conference - 06-08 December

Join us in Las Vegas to experience community, incredible learning opportunities, and connections that will help grow skills, know-how, and more.

Power BI Dev Camp Session 27

Ted's Dev Camp

This session walks through creating a new Azure AD B2C tenant and configuring it with user flows and custom policies.