1

私は今何時間も試していますが、問題がわかりません。私は clojure が初めてで、シンプルな flickr クライアントを作成しようとしています。しかし、私はさまざまなライブラリでこの問題を抱えています...私は一般的な間違いを犯していると思います。

現時点では、このライブラリで oauth を使用しようとしています: https://github.com/mattrepl/clj-oauth

lein new projectname

私のproject.cljは次のようになります。

(defproject flickr "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
          :url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.4.0"]
               [clj-oauth "1.4.0"]])

clj-oauth2 を追加した後、次を実行します。

  lein deps

そして私のcore.clj:

  (ns flickr.core)
  (require ['oauth.client :as 'oauth])


 (def consumer-key "0000")
 (def consumer-secret "0000")

 (def consumer (oauth.client/make-consumer <consumer-token>
                               <consumer-token-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))

私が今それを実行しようとすると:

   lein run

私は得る:

   FileNotFoundException Could not locate oauth/client__init.class or oauth/client.clj on classpath:   clojure.lang.RT.load (RT.java:432)

問題がどこにあるのか誰にも分かりますか? また、githubリポジトリからoauthソースをダウンロードし、ビルドして$ PATH変数に追加しましたが、それでも同じエラーです。

どんな助けでも大歓迎です!ありがとう!

4

2 に答える 2

2

最初に、キーを使用してlein run名前を指定する必要があるメインの名前空間を探します。そこに追加します。project.clj:main:main flickr.core

-main次に、 の関数が必要ですflickr.core。名前空間宣言を変更し、次のように関数を追加します。

(ns flickr.core
  (:require [clj-oauth2.client :as oauth]))

(defn -main []
  (println oauth/get-access-token))

それで、

$ lein run
;=> #<client$get_access_token clj_oauth2.client$get_access_token@4c9549af>

それは一種の「名前空間のスモークテスト」として機能し、そこから行くことができるはずです。

(最後に、「lein run」を使用するよりも REPL でこのようなことをテストすると、開発がはるかに速くなります。)

于 2013-02-08T23:02:06.680 に答える
1

依存関係に混乱があるようです。Clojars によると、使用しているライブラリclj-oauth2はこの GitHub プロジェクトhttps://github.com/DerGuteMoritz/clj-oauth2であり、質問でリンクしたものではありません。

最新の がclj-oauth必要な場合、依存関係は[clj-oauth "1.4.0"](最新バージョンの場合) である必要があります。必要な場合clj-oauth2は、上記の GitHub リンクを参照してください。

于 2013-02-08T23:12:21.447 に答える