Проблема с использованием python-oauth2

 
0
 
Python
ava
Mephisto | 09.07.2011, 18:59
Люди, пишу клиент к одному веб сервису. Сервис предоставляет авторизацию через OAuth Core 1.0a. Для коннекта использую python-oauth2
Вот что у них написано в документации:
Цитата

Цитата


- Use GET method for all requests

- Use HMAC-SHA1 to sign all requests

- Always provide oauth_callback in the request to request_token.ashx. If your product cannot receive a callback, use oauth_callback=oob




У меня следующая реализация коннекта:

import oauth2 as oauth
import urllib


htKey = 'тут ключ'
htSecret = 'тут ключ'
_htReq = "https://chpp.hattrick.org/oauth/request_token.ashx"

def test():
"""Test getting an access token via GET."""
consumer = oauth.Consumer(key=htKey, secret=htSecret)
client = oauth.Client(consumer)
client.set_signature_method(oauth.SignatureMethod_HMAC_SHA1())
resp, content = client.request(_htReq, "GET")
print content

if __name__ == '__main__':
test()
print 'Done.'



В результате всегда сваливаюсь:
Цитата


401 - Unauthorized: Access is denied due to invalid credentials.


Хоть на самом ресурсе есть вариант проверить свои ключи и они проходят проверку нормально.
Что самое странное, этим же кодом попытался пройти авторизацию на твиттере, прошел нормально. Только подставлял коды выданные твиттером и коннект на твиттер.
Но есть одна разница:
ConsumerKey к первому сервису содержит два символа "=" у себя в теле, а ConsumerSecret "=" и два "+". Может их преобразовать как-то необходимо чтобы посредством GET их можно было корректно передать?

Из поддержки мне вот так ответили:
Цитата


When you get parameters in url, urldecode them before use, it may help you.


Пробовал через urllib перевести ключи, но не помогло (( Может кто еще что находит в этом коде неправильного?
Бьюсь над решением, но пока не нахожу.
Есть у кого идеи?

Ключи, к сожалению, показать не могу из-за лицензии:
Цитата


The consumer secret must never be revealed to anyone. DO NOT include it in any requests, show it in any code samples (including open source) or in any way reveal it.

Kommentare (0)

Kommentare werden nicht hinzugefügt

Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden