A API de contatos do Google responde com o erro “countryBlock”

Eu tenho um aplicativo que importa contatos dos Contatos do Google. O aplicativo funcionou bem, até esta manhã, quando mudamos o “proprietário” da API. Ele foi configurado sob minha conta pessoal para fins de desenvolvimento.

Depois de configurar tudo, o Google começou a responder com isso:

Array ( [error] => Array ( [errors] => Array ( [0] => Array ( [domain] => global [reason] => countryBlocked [message] => This service is not available from your country ) ) [code] => 403 [message] => This service is not available from your country ) ) 

Esta é a linha que gera o erro e a declaração das funções (eles estão em arquivos diferentes):

 $xmlresponse = curl_file_get_contents($url); function curl_file_get_contents($url) { $curl = curl_init(); $userAgent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)'; curl_setopt($curl, CURLOPT_URL, $url); //The URL to fetch. This can also be set when initializing a session with curl_init(). curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); //TRUE to return the transfer as a string of the return value of curl_exec() instead of outputting it out directly. curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5); //The number of seconds to wait while trying to connect. curl_setopt($curl, CURLOPT_USERAGENT, $userAgent); //The contents of the "User-Agent: " header to be used in a HTTP request. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE); //To follow any "Location: " header that the server sends as part of the HTTP header. curl_setopt($curl, CURLOPT_AUTOREFERER, TRUE); //To automatically set the Referer: field in requests where it follows a Location: redirect. curl_setopt($curl, CURLOPT_TIMEOUT, 10); //The maximum number of seconds to allow cURL functions to execute. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); //To stop cURL from verifying the peer's certificate. $contents = curl_exec($curl); curl_close($curl); return $contents; } 

Tentei forçar um IP diferente usando: curl_setopt( $ch, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: $ip", "HTTP_X_FORWARDED_FOR: $ip")); e comentei a linha do agente do usuário. No entanto, sem sorte.

Quando eu executo o meu localhost, ele funciona bem sem erros. Estou na África do Sul e o servidor em que este erro é gerado é na Alemanha.

Eu tentei pesquisar as políticas do país do Google, mas acabei por ser curto.

Alguém pode explicar por que isso está acontecendo e como eu posso ignorá-lo?

Este erro indica que o Google acredita que seu endereço IP pertence a um país com access restrito . A Alemanha não é um desses países, portanto, isso provavelmente é um erro. Preencha o seguinte formulário para corrigir isso: https://support.google.com/websearch/contact/ip

Confira este tópico, o que é semelhante. Ele diz que a questão é causada pelo contato com o núcleo central da API do google com http: solicitações (não https 🙂

Intermitente 403 “Este serviço não está disponível no seu país” Erro para a API de execução