Google Translate API возвращает 403 (PHP)

0

Речь идет о API Google Translate

  1. Я установил проект и включил выставление счетов (с некоторыми деньгами на счете)

  2. Я создал ключ для серверного приложения (также попробовал использовать ключ браузера) и добавил все 3 IP-адреса, которые у меня есть (домашний и 2 сервера)

Что я вижу:

  1. Он работает в apis-explorer и в адресной строке браузера (https://www.googleapis.com/language/translate/v2/detect?q=an%20english%20text&key=MY_KEY)

  2. Он возвращает ошибку 403, если я пытаюсь получить тот же URL-адрес из кода PHP:

    $ apiKey = 'MY_KEY';

    $ url = ' https://www.googleapis.com/language/translate/v2/detect?q=an%20english%20text&key= '. $ apiKey. '';

    $ handle = curl_init ($ url);

    curl_setopt ($ handle, CURLOPT_RETURNTRANSFER, true);

    $ response = curl_exec ($ handle);

    curl_close ($ ручка);

    print_r (json_decode ($ response, true));

Результат:

Array (
    [error] => Array (
            [errors] => Array (
                    [0] => Array (
                            [domain] => usageLimits
                            [reason] => ipRefererBlocked
                            [message] => There is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please use the Google Developers Console to update your API key configuration if request from this IP or referer should be allowed.
                            [extendedHelp] => https://console.developers.google.com
                        ))
            [code] => 403
            [message] => There is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please use the Google Developers Console to update your API key configuration if request from this IP or referer should be allowed.
        ))

Я проверил IP-адреса десятки раз, попробовал использовать ключ браузера с разрешенным URL-адресом в качестве ссылочного. Из идей.

Теги:
google-api
google-translate

2 ответа

2
Лучший ответ

Спасибо, админы, они помогли разобраться. По умолчанию - завиток, используя наш адрес ipv6...

Итак, у нас есть три варианта:

  1. curl_setopt ($ handle, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);

  2. добавить адрес ipv6 в список разрешенных

  3. Отключите ipv6 для сервера

Я должен был быть более внимательным и помнить о ipv6 :-)

0

Мне сказали, что это исправлено, просто удалив все Ip из опции разрешенного разрешенного редактирования. Это делает его менее безопасным, но после этого он будет принимать все IP.

Изображение 174551

  • 3
    Сожалею. Это «менее безопасно» может повредить мой кошелек :-)
  • 0
    В то время как правильный ответ, Не рекомендуется .. Я бы не стал голосовать за это .. Но я также не буду одобрять это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню