Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
Hi!
I'm trying the REST API, I haven't done this before and the M and DAX languages are weird to me. I tried this on a postman I got this to work well. I tried looking for instructions to do this in Power BI, but that key makes it difficult.
Here is a view of postman javascript, showing that key how to create. Is there any way to make this work in Power BI?
pm.request.headers.add({key: 'X-Fivaldi-Partner', value: 'ws-XXXX'});
let bodyMD5 = '';
let contentType = '';
if (request.data.length > 0) {
bodyMD5 = CryptoJS.MD5(request.data);
contentType = request.headers['content-type'];
}
let time = Math.floor(new Date().getTime() / 1000).toString();
pm.request.headers.add({key: 'X-Fivaldi-Timestamp', value: time});
let stringToSign = request.method + LF +
bodyMD5 + LF +
contentType + LF;
let headers = pm.request.headers.all();
headers.sort(function (a, b) {
return a.key.toLowerCase().localeCompare(b.key.toLowerCase());
}).forEach(function(header) {
if (header.key.startsWith('X-Fivaldi')) {
let key = header.key.trim().toLowerCase();
let value = header.value;
if (typeof value === 'string') {
value = value.trim();
}
stringToSign += key + ':' + value + LF;
}
});
let url = request.url.replace('http://', '').replace('https://', '');
let path = '';
let queryStr = '';
if (url.includes('?')) {
path = url.substring(url.indexOf('/'), url.indexOf('?'));
queryStr = LF + encodeURI(url.substring(url.indexOf('?') +1));
} else {
path = url.substring(url.indexOf('/'));
}
stringToSign += path + queryStr;
console.log(stringToSign);
stringToSign = CryptoJS.enc.Utf8.parse(stringToSign);
//let key1 = CryptoJS.enc.Utf8.parse(pm.variables.get('partnerSecret'));
let key = CryptoJS.enc.Utf8.parse('xxxxxxxx');
console.log(key);
//console.log(key1);
let hash = CryptoJS.HmacSHA256(stringToSign, key);
let signature = 'Fivaldi ' + CryptoJS.enc.Base64.stringify(hash);
pm.request.headers.add({key: 'Authorization', value: signature});
Solved! Go to Solution.
You are not mentioning which way you want to authenticate. The preferred way seems to be OATH2 via custom connector
Handling authentication for Power Query connectors | Microsoft Docs
Actually, I don’t know what is the best (or only) way to do authentication, in this case.
I like to do desktop (connection and reports) and publish in O365, adding a scheduled update, if is it possible?!
If I make a desktop, does that mean M or DAX language? If so, are there instructions for this type authentication.
I haven't used OAuth2, so I need to learn more about it.
Has to be in M, the instructions and sample are in the link I posted.
You are not mentioning which way you want to authenticate. The preferred way seems to be OATH2 via custom connector
Handling authentication for Power Query connectors | Microsoft Docs
Check out the September 2024 Power BI update to learn about new features.
Learn from experts, get hands-on experience, and win awesome prizes.
User | Count |
---|---|
40 | |
4 | |
3 | |
3 | |
3 |