سؤال

أحاول إنشاء تطبيق ويب يمسك بالمعلومات الرياضية الخيالية من API من Yahoo. أعلم أنه يتطلب استخدام Oauth من أجل التحدث إلى API. يتم إنشاؤه باستخدام Flask وسيتم تشغيله على محرك تطبيق Google.

لقد كنت أحاول استخدام 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' ، 'ترميز النقل': 'chunked' ، 'connection': 'Close' ، 'Date': 'Tue ، 26 Oct 2010 18:24:16 GMT' ، 'P3P': ' policyRef = "http://info.yahoo.com/w3c/p3p.xml" ، cp = "cao dsp cur add dev tai psd psd ivai ivdi coni telo otpi nav int dem cnt sta pol pre loc gov "'' ، 'نوع المحتوى': 'التطبيق/x-www-form-urlencoded' ، 'www-authenticate': 'oauth oauth_problem = consumer_key_rejected'}

الآن ، لقد قرأت الوثائق المتاحة عبر Yahoo وأنا مهتمة لأن (أ) يبدو واضحًا جدًا و (ب) لا يمكنني معرفة المكان الذي أخطأ فيه. أنا أستخدم مفتاح المستهلك والسر المشترك الذي قدمته لي ياهو.

هذه هي تجربتي الأولى مع OAUTH وأي مساعدة سيكون موضع تقدير كبير.

هل كانت مفيدة؟

المحلول

كما أشار Kanaka ، تتطلب مكالمة Yahoo Get_access_token OAUTH_Callback ، ولا يسمح لك Simplegeo/OAUTH2 بتحديدها بسهولة.

فيما يلي بعض الحلول:

بدلاً من Simplegeo/Python-Oauth2 ، خذ Zbowling/Python-Oauth2 (وهو شوكة من Simplegeo ، ولكن مع بعض التعليمات البرمجية الجديدة اللطيفة ، و bugfixes) ، ثم إضافة معلمة إضافية:

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

إلى Client.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 سهلة تقديم طلب الرمز المميز للطلب ووفقًا لهذا الأمر: مطلوب: http://developer.yahoo.com/oauth/guide/oauth-requesttoken.html

لكن حتى عندما أجبر ذلك على "oob" لا يزال لدي المشكلة.

قد تجرب مكتبة Python الخاصة بـ Yahoo ومعرفة ما إذا كان ذلك يساعد (ثم نشره هنا ما وجدته): http://github.com/yahoo/yos-social-python. لقد وجدت ذلك من هنا: http://developer.yahoo.com/social/sdk/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top