Уже три дня я получаю вышеупомянутое сообщение об ошибке при попытке получить доступ к API книг Google, хотя мой IP не изменился.Я могу воспроизвести это в командной строке с помощью простого
curl "https://www.googleapis.com/books/v1/volumes?q=frankenstein"
Так что это не мой код.Это можно исправить, добавив код страны:
curl "https://www.googleapis.com/books/v1/volumes?q=frankenstein&country=DE"
Теперь, как мне это сделать в клиенте PHP?
Я попытался добавить страну в качестве необязательного параметра:
$client = new Google_Client();
$client->setApplicationName("My_Project");
$client->setDeveloperKey( $google_books_api_key );
$service = new Google_Service_Books($client);
$optParams = array(
'country' => 'DE'
);
$results = $service->volumes->listVolumes($terms, $optParams);
но это только дает мне
{"error": {"errors": [{"domain": "global","reason": "backendFailed","message": "Service temporarily unavailable.","locationType": other","location": "backend_flow"}],"code": 503,"message": "Service emporarily anavailable."}}
Решение, которое я нашел где-то, чтобы установить IP-адрес пользователя, к которому у меня есть доступ, все же дало мне«географически ограниченное» сообщение об ошибке.
$optParams = array(
'userIp' => '91.64.137.131'
);
Я нашел решения для клиентов, отличных от PHP, например Java? или Ruby или C # , номне они не показались полезными.
В клиенте PHP в классе 'Google_Service_Books_VolumeAccessInfo extends Google_Model' существует метод setCountry ($ country) , но я не знаю, как получить к нему доступметод.Кто-нибудь знает, как это решить?