clojure oauth和凭证

Nic*_*ico 8 flickr oauth clojure

我需要一些关于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)
Run Code Online (Sandbox Code Playgroud)

这是github的例子.

现在,从flickr API我有这个测试网址:

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
Run Code Online (Sandbox Code Playgroud)

我不使用twitter ...我使用flickr api并想获取用户的图片.

我现在的问题是:我如何更改适合flickr网址的凭据?我也很困惑,:status但当我删除它时,我得到一个错误...

sub*_*sub 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))
Run Code Online (Sandbox Code Playgroud)

在 Twitter 示例中,我替换的内容query-params指定了发布的内容。它是一个地图,将被 url 编码为类似 status=posting%20from%20%23clojure%20with%20%23oauth. 相反,来自您提到的 API 的请求具有以下非 oauth 查询参数映射:

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

现在我们要做的就是

(http/get "http://api.flickr.com/services/rest/" {:query-params (merge credentials query-params)}) 
Run Code Online (Sandbox Code Playgroud)