Tentando assinar digitalmente via HMAC-SHA1 com PHP

Estou tentando configurar algumas ações da API Premier do Google Maps e, para fazer isso, preciso assinar meus URLs para autenticar. Se você seguir os exemplos de assinatura, existem alguns códigos Python, C # e Java para mostrar como fazer a assinatura via HMAC-SHA1. Há também um exemplo para que eu possa testar minha implementação do PHP. No entanto, eu simplesmente não consigo fazê-lo funcionar.

Aqui está o meu código:

$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=";

Quando eu executo isso, recebo uma assinatura de:

ZDRlNGMwZjIyMTA1MWM1Zjk0Nzc4M2NkYjlmNDQzNDBkYzk4NDI4Zg==

O que totalmente não corresponde.

Coisas em que pensei:

A chave está no formato codificado em URL modificado, portanto, alterar- e_ para+ e/ também não funcionaO código de exemplo do Python realmente funciona, então este é um exemplo válido.Reescrevendo completamente nossa base de código em python, em vez de PHP (eu a herdei).

questionAnswers(3)

yourAnswerToTheQuestion