403 Запрещенный ответ от podio API с использованием pypodio2

#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. В этом есть целый смысл. Спасибо