GET&https%3A%2F%2Ftracker.my.com%2Fraw%2Fv1%2Fexport%2Fget.json&Чтобы делать запросы к API, вам необходимо собрать первые данные по проекту и получить доступ к API. Полученные для аутентификации API User ID и Секретный ключ используйте в подписи каждого запроса.
На текущий момент поддерживается только один способ создания подписи и аутентификации в API — HMAC SHA1.
Общая последовательность действий:
https://tracker.my.com/api/raw/v1/export/get.json получим следующую
        базовую строку:
        GET&https%3A%2F%2Ftracker.my.com%2Fraw%2Fv1%2Fexport%2Fget.json&Base64-encode(HMAC-SHA1(базовая строка, секретный ключ))Authorization: AuthHMAC APIUserID:подписьAuthorization: AuthHMAC 87657:3RT1/n0b73A63xLDnb0wrvFPMC8=Входные параметры
В результате получаем
GET&https%3A%2F%2Ftracker.my.com%2Fapi%2Fraw%2Fv1%2Fexport%2Fget.json%3FidReport%3D4&PqrQR8zsgQU9Qcocjp6T6hnjF8Y=Authorization: AuthHMAC 77658:PqrQR8zsgQU9Qcocjp6T6hnjF8Y=from urllib.parse import quote
from binascii import b2a_base64
from hashlib import sha1
from hmac import new
def get_signature(api_user_id, secret_key, url, method='GET', post_data=None):
    method = method.upper()
    data = post_data if post_data else ''
    string = '%s&%s&%s' % (
        method,
        quote(url, safe='~'),
        quote(data, safe='~')
    )
    signature = b2a_base64(
        new(
            bytearray(secret_key, 'utf-8'),
            bytearray(string, 'utf-8'),
            sha1
        ).digest()).decode().rstrip('\n')
    return 'AuthHMAC %s:%s' % (api_user_id, signature)function getSignature($APIUserId, $secretKey, $url, $method='GET', $post_data=null) {
    $method = strtoupper($method);
    $data = $post_data ? $post_data : '';
    $string = sprintf('%s&%s&%s', $method, rawurlencode($url), rawurlencode($data));
    $signature = base64_encode(hash_hmac('sha1', $string, $secretKey, true));
    return sprintf('AuthHMAC %s:%s', $APIUserId, $signature);
}