2013-05-14 3 views
1

Недавно я взял на себя поддержку приложения, которое использует rauth для подключения к linkedin. Код, который не удается это:Python rauth connection to linkedin

self.linkedin= OAuth1Service(              
     name='linkedin',               
     consumer_key=self._consumer_key,            
     consumer_secret=self._consumer_secret,          
     request_token_url=self.request_token_url,  
     access_token_url=self.access_token_url,   
     authorize_url=self.authorize_url)   

    self.request_token, self.request_token_secret = \ 
         self.linkedin.get_request_token(method='GET', 
         oauth_callback=self.callback_url) 

владелец приложения говорит, что это используется для работы, но теперь мы получаем:

TypeError: запрос() получил неожиданный аргумент ключевое слово «» oauth_callback

Можете ли вы указать мне на некоторые документы/примеры, которые помогут мне перепроектировать это?

-Джим

+0

Вам необходимо передать обратный вызов в 'params' dict. – maxcountryman

ответ

1

Это звучит, как вы используете более позднюю версию Rauth, чем оригинальный автор был. Вам необходимо будет изменить код, чтобы он соответствовал изменениям в API-интерфейсе rauth. Они в основном небольшие, что частично связано с переходом на Requests v1.0.0, который имел много нарушений в своем API.

Вы должны прочитать upgrade guide. Дополнительно есть число working examples.

И, наконец, эта конкретная ошибка указывает на непредвиденный параметр, а именно oauth_callback. Это потому, что раута - это всего лишь обертка над запросами. Запросы не знают, что делать с oauth_callback. Вместо этого, вы должны использовать API нативного Обработка запросов и передать его, в этом случае, с помощью параметра params, например .:

linkedin = OAuth1Service(name='linkedin',               
         consumer_key=consumer_key,            
         consumer_secret=consumer_secret,          
         request_token_url=request_token_url,  
         access_token_url=access_token_url,   
         authorize_url=authorize_url)   

request_token, request_token_secret = \ 
    linkedin.get_request_token(method='GET', 
           params={'oauth_callback': callback_url}) 

Надежда, что помогает!