これらの手順https://secure.flickr.com/services/api/auth.oauth.htmlに従って、私の clojure プログラムに oauth を実装しています。
次のコードを使用すると、ステップ 3 まですべてが正常に機能します。(printlnsは戻り値を確認するためのものです)
(def consumer-key "0000")
(def consumer-secret "0000")
(def consumer (oauth.client/make-consumer consumer-key
consumer-secret
"http://www.flickr.com/services/oauth/request_token"
"http://www.flickr.com/services/oauth/access_token"
"http://www.flickr.com/services/oauth/authorize"
:hmac-sha1))
(def request-token (oauth/request-token consumer "http://localhost:8080/authorize"))
(defn flickrauth []
(def auth-url (oauth/user-approval-uri consumer
(:oauth_token request-token)))
(println (str auth-url "&perms=write")))
ブラウザに auth-url を入力すると、書き込み権限でアクセスを承認できます。
(defn get-access-token [oauth-token verifier]
(println "CONSUMER: " consumer "REQ TOKEN: " oauth-token "verifier: " verifier)
次のコードでは、「oauth_problem=token_rejected, status 401」しか得られませんでした。したがって、リクエストトークンをアクセストークンに交換することに問題があると思います...
(def access-token-response (oauth/access-token consumer
request-token
verifier))
(println "ACCESS TOKEN RESPONSE: " access-token-response)
簡単な要約...リクエストトークンとベリファイアを取得しましたが、アクセストークンレスポンスでは別のoauth_tokenが使用されています..そして、理由がわかりません。
助けとヒントをありがとう!