2013-02-13 38 views
8

Tôi cần trợ giúp với clojure and oauth.clojure oauth và thông tin đăng nhập

Tôi gặp khó khăn ở bước cuối cùng: ký yêu cầu với thông tin xác thực.

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

Đó là ví dụ từ github.

Bây giờ, từ API flickr Tôi có điều này kiểm tra-url:

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 

Tôi không sử dụng twitter ... Tôi sử dụng api flickr và muốn nhận được hình ảnh của một người sử dụng.

Câu hỏi của tôi bây giờ là: Làm cách nào để thay đổi thông tin đăng nhập phù hợp với url flickr? Tôi cũng bối rối về số :status nhưng khi tôi xóa, tôi gặp lỗi ...

+0

là API_KEY nghĩa vụ phải được bí mật? 82d4 ...? –

+0

Đó chỉ là một testkey và sẽ hết hạn sau vài giờ ... nhưng tôi đã thay đổi số bây giờ ... có thể an toàn hơn;) – Nico

+0

Sẽ rất hữu ích nếu bạn cung cấp mã thực (sans keys) thay vì ví dụ twitter. – ivant

Trả lời

3

Ví dụ về Twitter sử dụng phương thức HTTP POST, nhưng đối với Flickr, chúng tôi muốn GET và flickr api. Vì vậy, chúng tôi làm

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

Trong ví dụ về twitter, những gì tôi đã thay thế bằng query-params chỉ định nội dung được đăng. Nó là một bản đồ sẽ được mã hóa url thành một cái gì đó như status=posting%20from%20%23clojure%20with%20%23oauth. Ngược lại, theo yêu cầu từ API bạn đề cập có bản đồ sau cho phi oauth truy vấn-params:

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

Bây giờ tất cả chúng ta phải làm là

(http/get "http://api.flickr.com/services/rest/" {:query-params (merge credentials query-params)}) 
Các vấn đề liên quan