Problémy s python-OAuth2 a Yahoo Fantasy Sports API

hlasů
3

Snažím se vytvořit webovou aplikaci, která chytne fantasy sportovní informace od Yahoo API. Já vím, že to vyžaduje použití OAuth s cílem mluvit s API. Je to vznikají za použití baňky a poběží na Google App Engine.

Snažil jsem se použít python-protokolu OAuth2 od lidi na SimpleGeo a neustále se mi přesně stejný chybu, když se snaží dělat vývojové práce. Zde je úryvek kódu:

import oauth2 as oauth

consumer = oauth.Consumer(key=settings.OAUTH_CONSUMER_KEY, secret=settings.OAUTH_SHARED_SECRET)
request_token_url = https://api.login.yahoo.com/oauth/v2/get_request_token
client = oauth.Client(consumer)

resp, content = client.request(request_token_url, GET)

Tady je odpověď chyba Začínám:

{ 'Status': '401', 'transfer-encoding': 'blokového', 'připojení': 'zavřít', 'Datum': 'Tue, 26 říjen 2010 18:24:16 GMT', 'P3P': ' policyref = http://info.yahoo.com/w3c/p3p.xml, CP = CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONI Telo OTPi OUR lahůdky Sami OTRi UNRi Publ IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV ‘, 'Content-Type': 'aplikace / x-www-form-urlencoded', 'www-Authenticate': 'OAuth oauth_problem = consumer_key_rejected'}

Teď jsem četl dokumentaci k dispozici přes Yahoo a já jsem pařezy, protože (a) zdá se všechno tak jednoduché, a (b) Nemůžu přijít na to, kam jdu špatně. Jsem pomocí tlačítka pro spotřebitele a sdílený tajný mi poskytl Yahoo.

Je to moje první zkušenost s OAuth a pomoci by bylo velmi ocenil.

Položena 26/10/2010 v 19:28
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
2

Jen jsem se snažil pomocí python-protokolu OAuth2 (simplegeo je) a má stejný problém.

Jeden problém s implementací simplegeo je, že oauth_callback lze snadno stanovit v žádosti tokenu požadavku a podle toho je nutné: http://developer.yahoo.com/oauth/guide/oauth-requesttoken.html

Ale i když jsem se přinutit, aby se ‚OOB‘ Stále mám problém.

Můžete zkusit Yahoo vlastní python knihovnu a uvidíme, jestli to pomůže (a pak post sem, co jste našli): http://github.com/yahoo/yos-social-python . Zjistil jsem, že odsud: http://developer.yahoo.com/social/sdk/

Odpovězeno 30/10/2010 v 21:06
zdroj uživatelem

hlasů
6

Jako Kanaka zdůraznil, get_access_token volání Yahoo vyžaduje oauth_callback a simplegeo / OAuth2 neumožňuje ji určit snadno.

Zde je několik řešení:

Namísto simplegeo / python-OAuth2 přijmout zbowling / python-protokolu OAuth2 (což je vidlice simplegeo, ale s nějakým pěkným novým kódem a oprav) a pak přidat další parametr:

parameters={'oauth_callback': 'http://example.com/callback/'}

na Client.request hovoru. Jako tak:

client = Client(consumer)
client.request('https://api.login.yahoo.com/oauth/v2/get_request_token',
               method='GET',
               parameters={'oauth_callback': 'http://example.com/callback/'})

Pokud trváte na práci s simplegeo / python-OAuth2 pak podívejte se na podrobnou diskusi o problémech s simplegeo / OAuth2 a Yahoo OAuth na této stránce . To má některé fragmenty kódu, které můžete použít.

Odpovězeno 17/12/2010 v 07:26
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more