2010-03-31 17 views
7

शुरू करने के लिए, मुझे सी ++, सी #, पायथन, कुछ रूबी और मूल जावास्क्रिप्ट पता है। वैसे भी, मेरा प्रश्न जावास्क्रिप्ट के माध्यम से रीस्टफुल एपीआई के साथ बातचीत करने के तरीके के आसपास घूमता है। मैं विभिन्न वेबसाइटों पर कोई अच्छा उदाहरण नहीं ढूंढ पा रहा हूं, और इसलिए मैं यहां आया हूं।जावास्क्रिप्ट के माध्यम से रीस्टफुल एपीआई के साथ बातचीत?

तो मेरा मूल प्रश्न यह है कि मैं जेएस के माध्यम से रीस्टफुल एपीआई के साथ कैसे बातचीत करूं? और जेएस में ओएथ को कैसे कार्यान्वित करना है, मैं कहां से पता लगा सकता हूं? मैं अपने कुंजी पाने के लिए और इस तरह, बस नहीं वास्तव में उन्हें में कोड करने के लिए कैसे पता

नीचे एक चहचहाना एपीआई स्थिति अद्यतन कर्ल के साथ अपने मैक टर्मिनल से चलाने का एक उदाहरण है:।

curl -u username:password 
-d "my tweet" 
http://api.twitter.com/1/statuses/update.json 

कैसे कर सकते हैं मैं इसे जावास्क्रिप्ट में लागू करता हूं (अधिमानतः ओएथ प्रमाणीकरण के साथ)? यह कम से कम मुझे सही दिशा में जाने शुरू कर देगा।

बहुत बहुत धन्यवाद !!

उत्तर

7

समस्या यह है कि आपको दूरस्थ REST API से पूछने के लिए AJAX का उपयोग करने की आवश्यकता होगी, और AJAX को केवल पृष्ठ के समान डोमेन पर संसाधनों की क्वेरी करने की अनुमति है। इसलिए, api.twitter.com का अनुरोध विफल हो जाएगा क्योंकि यह आपके सर्वर से भिन्न डोमेन पर है।

इसे ठीक करने के लिए आपको ट्विटर पर अनुरोध करने के लिए अपने सर्वर को कोड करने की आवश्यकता होगी। हालांकि आप अपने स्वयं के AJAX स्टब्स बना सकते हैं जो सीधे आपके पृष्ठ से डेटा स्वीकार करेंगे, और फिर अपने क्लाइंट द्वारा प्रदान किए गए डेटा का उपयोग करके ट्विटर सर्वर-साइड को अनुरोध/भेजें।

6

आम तौर पर जस्टिन का दृष्टिकोण सही है, हालांकि यदि आपके पास अपनी क्लाइंट स्क्रिप्ट आरईएसटी सेवा के साथ बातचीत करनी है तो आप इसे जेसनपी के साथ कर सकते हैं। वह एक फंक्शन कॉल में लपेटा गया JSON डेटा है।

इसे कैसे करना इस पृष्ठ को देखें http://www.ibm.com/developerworks/library/wa-aj-jsonp1/

1

OAuth संस्करण 1.0 जावास्क्रिप्ट में एक बुरा विचार है क्योंकि आप अपने आवेदन की गुप्त कुंजी का पर्दाफाश करने, ऐसा करने से आप किसी और का रूप धारण करने की इजाजत दी जा सकती है द्वारा की जरूरत है अपने आवेदन। OAuth 1.0 का उद्देश्य आपके नियंत्रण में सर्वर के साथ उपयोग के लिए किया गया था। तो आपके उपयोगकर्ता अपने टोकन को अपने सर्वर पर भेज सकते हैं और फिर आप उनकी तरफ से ट्विटर पर अनुरोध को बंद कर देते हैं।

ओएथ 2.0 यह हल करता है हालांकि ट्विटर does not support it yet

तुम सच में OAuth 1.0 चाहते हैं तो आप मेरी प्लगइन का उपयोग: https://github.com/jpillora/jquery.rest और भी परिवर्तन this GitHub issue

में निर्दिष्ट कर
संबंधित मुद्दे