Я пытаюсь настроить некоторые действия API Карт Google Premier, и для этого мне нужно подписать свои URL-адреса для аутентификации.Если вы перейдете к примерам Signature, есть немного кода на Python, C # и Java, чтобы показать вам, как сделать подпись через HMAC-SHA1.Есть также пример, чтобы я мог проверить мою реализацию PHP.Тем не менее, я просто не могу заставить его работать.
Вот мой код:
$key = "vNIXE0xscrmjlyV-12Nj_BvUPaw=";
$data = "/maps/api/geocode/json?address=New+York&sensor=false&client=clientID";
$my_sign = hash_hmac("sha1", $data, base64_decode($key));
$my_sign = base64_encode($my_sign);
$valid_sign = "KrU1TzVQM7Ur0i8i7K3huiw3MsA=";
Когда я запускаю это, я получаю подпись:
ZDRlNGMwZjIyMTA1MWM1Zjk0Nzc4M2NkYjlmNDQzNDBkYzk4NDI4Zg==
, что полностью не соответствует.
Вещи, о которых я думал:
- Ключ находится в кодированном формате измененного URL, поэтому изменение
-
и _
на +
и /
также не 't work - Пример кода Python действительно работает, так что это верный пример.
- Полностью переписываем нашу базу кода на python вместо PHP (я унаследовал его).