I wanted to let you all know we had this EXACT same problem and we solved it so we would like to share with you all !!
Our solution was to remove the Client and Signature from the URL and use the following code/methods to set the Client and Signature:
http_client->request->set_header_field(
name = 'client'
value = L_GOOGLE_CLIENT_ID
).
http_client->request->set_header_field(
name = 'signature'
value = L_GOOGLE_SIGNATURE
).
This works for us!! No more 403 error !!