#python #python-2.7 #podio
#python #python-2.7 #podio
Вопрос:
Я задаю этот вопрос, исчерпав идеи — я предположил, что делаю что-то глупое, но даже если это так, я не могу понять, что… Я новичок в python, отойдя от кодирования 10 лет назад, но когда-то я был достаточно опытным:-D Я написал скрипт python для запроса Google CSE и поиска соответствующих элементов, и идея заключается в том, что он проверит список материалов Podio, чтобы увидеть, есть ли они там уже перечислены. Итак, на данный момент все, что я хочу сделать, это аутентифицироваться с помощью Podio и захватывать элементы, чтобы я мог запрашивать их в своем приложении.
Я пытаюсь подключиться к Podio API, используя предписанный метод в документах (и в вопросах здесь, и везде, где я смотрел)
На данный момент буквально все, что делает этот скрипт, — это это, за исключением того, что учетные данные заменены фактическими строками, на всякий случай, если я пропустил какое-то безумие с переменной python.
import pypodio2
from pypodio2.api import OAuthClient
c = OAuthClient(
"<myappID>",
'<myAPIkey>',
'<myusername>',
'<mypassword>'
)
Я использую pythonanywhere в качестве изолированной среды и запускаю скрипт с консоли bash, я получаю это
16:26 ~/mysite $ python apitest.py
Traceback (most recent call last):
File "apitest.py", line 15, in <module>
'Splat_100'
File "/home/Trebuchet/.local/lib/python2.7/site-packages/pypodio2/api.py", line 13, in OAuthClient
api_key, api_secret, domain)
File "/home/Trebuchet/.local/lib/python2.7/site-packages/pypodio2/transport.py", line 41, in __init__
urlencode(body), headers=headers)
File "/usr/local/lib/python2.7/dist-packages/httplib2/__init__.py", line 2135, in request
cachekey,
File "/usr/local/lib/python2.7/dist-packages/httplib2/__init__.py", line 1796, in _request
conn, request_uri, method, body, headers
File "/usr/local/lib/python2.7/dist-packages/httplib2/__init__.py", line 1701, in _conn_request
conn.connect()
File "/usr/local/lib/python2.7/dist-packages/httplib2/__init__.py", line 1358, in connect
sock.connect((self.host, self.port) sockaddr[:2])
File "/usr/local/lib/python2.7/dist-packages/httplib2/socks.py", line 496, in connect
self.__negotiatehttp(destpair[0], destpair[1])
File "/usr/local/lib/python2.7/dist-packages/httplib2/socks.py", line 457, in __negotiatehttp
raise HTTPError((statuscode, statusline[2]))
httplib2.socks.HTTPError: (403, 'Forbidden'
Пароль, ключ и т.д. Указаны правильно. Имя пользователя указано правильно. Идентификатор клиента указан правильно. Поэтому я, должно быть, упускаю что-то, что очевидно для людей, привыкших работать с API. Не должен ли я? Спасибо 🙂
Ответ №1:
Бесплатные учетные записи на PythonAnywhere могут получать доступ только к сайтам http, которые находятся в нашем белом списке. Если на используемом вами сайте есть общедоступный API, отправьте ссылку на него в службу поддержки PythonAnywhere (support@pythonanywhere.com ) и мы рассмотрим возможность добавления его в белый список.
Комментарии:
1. В этом есть целый смысл. Спасибо