Люди, пишу клиент к одному веб сервису. Сервис предоставляет авторизацию через 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.