0

Я сделал проект в своей учетной записи Google. Затем авторизованный и доступ к Google Custom Search с ключом API и идентификатором в систему пользовательского поиска. Я попытался выполнить поиск с использованием интерфейса Python, изменив код примера. Каждый раз, когда я запускаю код после этой строки я получаю эту ошибку:Невозможно создать экземпляр службы API Google: разрешение отклонено

service = build("customsearch", "v1", 
     developerKey="AIxx") 

IOError: [Errno 13] Permission denied

Я пытался создать запрос себя, чтобы проверить, если проблема с Google или меня. Вот моя просьба:

https://www.googleapis.com/customsearch/v1?q=olive+garden&cx=00026xx&key=AIxx

И это сработало! Итак, теперь я совершенно смущен и не могу понять, в чем проблема.

Это еще более странно, потому что, когда я пытаюсь выполнить тот же поиск с помощью Google API, исследователь, он возвращает: Ежедневный Превышен предел

+1

Запустите его с суперпользователем, возможно, это поможет вам. –

+0

@ HasanRamezani Вы хотите запустить python с помощью sudo? – Moh

+0

запускайте свой скрипт суперпользователем. что-то вроде этого: 'sudo python test.py' –

ответ

4

проблема в том, что httplib2 инсталлятор не установлено разрешение на чтение для других на cacerts.txt вы должны добавить разрешение на чтение для других тоже: D

sudo chmod o+r /Library/Python/2.7/site-packages/httplib2-0.9.2-py2.7.egg/httplib2/cacerts.txt 

фактически httplib2 должны прочитать это из широких системных сертификатов и Я не знаю, почему они этого не делают. есть ли кто-нибудь, кто знает, почему? есть исправления для этой конкретной проблемы, такой как этот патч, например, https://bugs.mageia.org/show_bug.cgi?id=6568

+0

Исправлено. Не имеет ли побочных эффектов? Безопасно ли это каким-либо образом? – Moh

+1

Да, это безопасно Этот файл является корневым сертификатом для органов сертификации, см. Это (https://en.wikipedia.org/wiki/Root_certificate) –

+1

см. Https://github.com/jcgregorio/httplib2/issues/252 для получения полной информации о Эта проблема –

2

Проблема заключается в том, потому что Google API хотят получить доступ к местоположению, которое не разрешение на него.

Запустите свой скрипт суперпользователем. что-то вроде этого:

sudo python test.py 

Если вы знаете место, Google API хочет получить доступ, изменить разрешение местоположения по chmod команде.