Forum Discussion

NaukkaUKKO's avatar
NaukkaUKKO
Frequent Visitor
4 years ago
Solved

API request what needs HMAC SHA-256 encryption

Hello,

 

I need to request data from API to Power Query, but request payload needs SHA-256 encryption. Googling reveals years old posts where people state that its not possible to use this cryptograhy in Power Query. I would appreciate your help if you knew if its still the case or there is work around. Below is code of how i would do request to API with Python. 

 

API_ROOT = 'xxxxxxxx'

 

public_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'


private_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'


call_string = 'events/<event_id>?query1=value1&query2=value2'


timestamp_sec = int(time.time())

msg = ','.join([public_key,
str(timestamp_sec),
call_string,])

 

signature = hmac.new(
private_key.encode('utf-8'),
msg=base64.b64encode(msg.encode('utf-8')),
digestmod=hashlib.sha256
).hexdigest()

 

headers = {
'Accept': 'application/json; charset=utf-8',
'Authorization': 'xxxx public_key={}, timestamp={}, signature={}'.format(public_key, timestamp_sec, signature),
}

request = urllib.request.Request(API_ROOT + call_string, headers=headers)
response = urllib.request.urlopen(request)
data = json.loads(response.read())

  • Hi NaukkaUKKO ,

     

    There is no HASH encryption in Power Query. But, Power Query supports Python script. Then you can copy the code you provided in Power query.

    The type of python script result is json, you can use power query funtion Json.Document() to receive this result.

    Run Python Scripts in Power BI Desktop - Power BI | Microsoft Docs

     

    Best Regards

    Community Support Team _ chenwu zhu

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

1 Reply

  • v-chenwuz-msft's avatar
    v-chenwuz-msft
    Community Support

    Hi NaukkaUKKO ,

     

    There is no HASH encryption in Power Query. But, Power Query supports Python script. Then you can copy the code you provided in Power query.

    The type of python script result is json, you can use power query funtion Json.Document() to receive this result.

    Run Python Scripts in Power BI Desktop - Power BI | Microsoft Docs

     

    Best Regards

    Community Support Team _ chenwu zhu

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.