8

clojure と 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)

それはgithubの例です。

今、flickr API から、次のテスト 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

Twitter は使用していません... flickr API を使用していて、ユーザーの写真を取得したいと考えています。

私の質問は次のとおりです: flickr の URL に適合する資格情報を変更するにはどうすればよいですか? 私も混乱しています:statusが、削除するとエラーが発生します...

4

1 に答える 1

3

Twitter の例では HTTP POST メソッドを使用していますが、Flickr では GET と 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))

Twitter の例では、何を何に置き換えたかによってquery-params、投稿される内容が指定されます。のようなものに URL エンコードされるマップです status=posting%20from%20%23clojure%20with%20%23oauth。逆に、あなたが言及したAPIからのリクエストには、非oauth query-paramsの次のマップがあります。

(def query-params {:method "flickr.people.getPhotos" :format "json" :user_id "93029506@N07" :nojsoncallback 1})

今、私たちがしなければならないことは、

(http/get "http://api.flickr.com/services/rest/" {:query-params (merge credentials query-params)}) 
于 2013-09-27T19:19:25.897 に答える