目前我尝试将oauth与此lib一起使用: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 repo下载了oauth源代码,构建它并将其添加到我的$ PATH变量中,但仍然是同样的错误。
任何帮助将不胜感激! 谢谢!
答案 0 :(得分: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>
这对我来说是一种“命名空间冒烟测试”,你应该可以从那里开始。
(最后要注意的是,如果你在REPL中测试这些东西而不是使用'lein run',你的开发会更快。)
答案 1 :(得分:1)
似乎与您的依赖关系混淆了。根据Clojars的说法,您正在使用的clj-oauth2
库就是这个GitHub项目https://github.com/DerGuteMoritz/clj-oauth2,而不是您在问题中链接的那个。
如果您想要最新的clj-oauth
,则依赖关系应为[clj-oauth "1.4.0"]
(对于最新版本)。如果您需要clj-oauth2
,那么上面的GitHub链接应该是参考。