Вопрос

Я пытаюсь построить веб-приложение, которое захватывает спортивную информацию Fantasy от API Yahoo. Я знаю, что это требует использования ОАУТ, чтобы поговорить с API. Это создается с помощью колбы и запустится на приложении Google App.

Я пытался использовать Python-Oauth2 от людей в Simplegeo, и я продолжаю получать ту же точную ошибку при попытке выполнять работу в разработке. Вот фрагмент кода:

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")

Вот ответ ошибки, который я получаю:

{«Статус»: «401», «Кодировка трансферта»: «Colaled», «Соединение»: «Закрыть», «Дата»: «Вт), 26 октября 2010 18:24:16 GMT ',' p3p ':' PolicyREF = "http://info.yahoo.com/w3c/p3p.xml", cp = "CAO DSP COR CUR ADMEV DEV TAI PSA PSD PSD IVAI IVDI CONI TELO OTPI Наш DELI SAMI OTRI NON PUBI IND PHY ONL UNI PUR FIL COM NAV INT DEM CNT STA POL HEA PRE PROC GOV «',« тип контента »:« Приложение / X-www-form-urlencoded »,' www-atuctific ':' OAUTH OAUTH_PROBLEM = Thumber_key_rejected '}

Теперь я прочитал документацию, доступную через Yahoo, и я намазал, потому что (а) кажется все так просто и (б) я не могу выяснить, где я пойду не так. Я использую потребительский ключ и поделился секретом, предоставленным мне Yahoo.

Это мой первый опыт работы с ОАУТ, и любая помощь будет очень оценена.

Это было полезно?

Решение

Как отметил Канака, вызов Yahoo's Get_access_Token требует OAUTH_CALLBACK, а SimpleGeo / Oauth2 не позволяет легко указывать его легко.

Вот пара обработных путей:

Вместо SimpleGeo / Python-Oauth2 принять zboking / python-oauth2 (который представляет собой вилку SimpleGeo, но с помощью какого-то хорошего нового кода и bucfixes), а затем добавить дополнительный параметр:

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

к клиенту. Request Call. Вот так:

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

Если вы настаиваете на работе с SimpleGeo / Python-Oauth2, посмотрите подробное обсуждение проблем с помощью SimpleGeo / Oauth2 и Yahoo Oauth, в эта страница. Отказ У него есть некоторые фрагменты кода, которые вы можете использовать.

Другие советы

Я просто попробовал использовать Python-Oauth2 (SimpleGeo's) и получил ту же проблему.

Одной из проблем с реализацией SimpleGeo состоит в том, что OAuth_Callback легко предоставить в запросе Token запроса и в соответствии с этим требуется: http://developer.yahoo.com/oauuth/guide/oauth-RequestToken.html.

Но даже когда я заставляю это «ом», у меня все еще есть проблема.

Вы можете попробовать собственную библиотеку Yahoo Python и посмотреть, поможет ли это (а затем отправить здесь, что вы нашли): http://github.com/yahoo/yos-social-python.. Отказ Я нашел это отсюда: http://developer.yahoo.com/social/sdk/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top