2013-02-13 16 views
8

मुझे clojure and oauth के साथ कुछ मदद की ज़रूरत है।क्लोजर ओथ और क्रेडेंशियल्स

मैं अंतिम चरण में फंस गया: प्रमाण-पत्र के साथ अनुरोध पर हस्ताक्षर कर रहा हूं।

(def credentials (oauth/credentials consumer 
            (:oauth_token access-token-response) 
            (:oauth_token_secret access-token-response) 
            :POST 
            "http://twitter.com/statuses/update.json" 
            {:status "posting from #clojure with #oauth"})) 

(http/put "http://twitter.com/statuses/update.json" 
      :query-params credentials) 

जिथब से उदाहरण है।

अब, फ़्लिकर एपीआई से मैं इस परीक्षण यूआरएल है:

http://api.flickr.com/services/rest/?method=flickr.people.getPhotos 
&api_key=82d4d4ac421a5a22et4b49a04332c3ff 
&user_id=93029506%40N07&format=json&nojsoncallback=1 
&auth_token=72153452760816580-cd1e8e4ea15733c3 
&api_sig=b775474e44e403a79ec2a58d771e2022 

मैं चहचहाना का उपयोग न ... मैं Flickr API का उपयोग करें और एक उपयोगकर्ता की तस्वीरें प्राप्त करना चाहते हैं।

मेरा प्रश्न अब है: मुझे ऐसे क्रेडेंशियल्स को कैसे बदलना है जो यह फ़्लिकर यूआरएल फिट बैठता है? मैं भी :status के बारे में उलझन में हूँ लेकिन जब मैं इसे हटा मैं एक त्रुटि ...

+0

कि api_key गुप्त होना चाहिए है: इसके विपरीत, एपीआई से अनुरोध आप का उल्लेख गैर OAuth क्वेरी-पैरामीटर के लिए निम्नलिखित नक्शा है? 82d4 ...? –

+0

यह सिर्फ एक परीक्षक है और कुछ घंटों में समाप्त हो जाएगा ... लेकिन मैंने अब संख्याएं बदल दी हैं ... शायद सुरक्षित;) – Nico

+0

यदि आप अपना वास्तविक कोड (सैन्स कुंजी) बल्कि ट्विटर उदाहरण देते हैं तो यह सहायक होगा। – ivant

उत्तर

3

ट्विटर उदाहरण HTTP POST विधि का उपयोग करता है, लेकिन फ़्लिकर के लिए हम प्राप्त और Flickr API चाहते हैं। इसलिए हम

(def credentials (oauth/credentials consumer 
           (:oauth_token access-token-response) 
           (:oauth_token_secret access-token-response) 
           :GET 
           "http://api.flickr.com/services/rest/" 
           query-params)) 

कर चहचहाना उदाहरण में, मैं क्या query-params के साथ बदल दिया क्या पोस्ट कर दिया निर्दिष्ट करता है। यह एक नक्शा है जो यूआरएल-एन्कोडेड होगा जैसे status=posting%20from%20%23clojure%20with%20%23oauth। अब सब हम क्या करना है

(def query-params {:method "flickr.people.getPhotos" :format "json" :user_id "[email protected]" :nojsoncallback 1}) 

(http/get "http://api.flickr.com/services/rest/" {:query-params (merge credentials query-params)}) 
संबंधित मुद्दे