Open sasacocic opened 2 years ago
Huh. Makes sense that the update works, because that error is coming from the response handler (which is expecting the response to be map, but apparently it's a string). I can't imagine there's anything special about the POST account/update_profile_banner endpoint, so, weird.
I've done other api calls without issue like
(twitter-api/user-settings
(twittier-api/users-profile-banner
EDIT: I wrote this seeing what would happen. All of the work except the account-update-profile-banner
(defn testing [tok sec]
(let [credentials (twitter-auth/map->UserCredentials {:user-token tok :user-token-secret sec :consumer-key "key" :consumer-secret "secret"})
image_location "https://pbs.twimg.com/profile_banners/1213616925156052993/1632396483/1500x500"
c1 (twitter-api/account-settings credentials)
c2 (twitter-api/users-profile-banner credentials :params {:screen_name "SasaCocic"})
c3 (twitter-api/followers-list credentials :params {:screen_name "SasaCocic"})
;; c4 - causes an the error
c4 (twitter-api/account-update-profile-banner credentials :params {:banner (.encodeToString (Base64/getEncoder) (:body (client/get "https://pbs.twimg.com/profile_banners/1213616925156052993/1632396483/1500x500" {:as :byte-array}) )) })
]
{:c1 c1
:c2 c2
:c3 c3
:c4 4})
)
Here's what I'm seeing from lein deps :tree-data
lein deps :tree-data sasacocic@Sasas-Shiny-Mac
Possibly confusing dependencies found:
[compojure "1.6.2"] -> [ring/ring-codec "1.1.2"]
overrides
[ring/ring-jetty-adapter "1.9.1"] -> [ring/ring-servlet "1.9.1"] -> [ring/ring-core "1.9.1"] -> [ring/ring-codec "1.1.3"]
and
[ring/ring-jetty-adapter "1.9.1"] -> [ring/ring-core "1.9.1"] -> [ring/ring-codec "1.1.3"]
and
[ring/ring-core "1.9.1"] -> [ring/ring-codec "1.1.3"]
Consider using these exclusions:
[ring/ring-jetty-adapter "1.9.1" :exclusions [ring/ring-codec]]
[ring/ring-core "1.9.1" :exclusions [ring/ring-codec]]
[ring/ring-core "1.9.1"] -> [commons-io "2.6"]
overrides
[clj-http "3.12.3"] -> [commons-io "2.8.0" :exclusions [org.clojure/clojure]]
Consider using these exclusions:
[clj-http "3.12.3" :exclusions [commons-io]]
[ring-logger "1.0.1"] -> [org.clojure/tools.logging "0.3.1"]
overrides
[twttr "3.2.3"] -> [aleph "0.4.6"] -> [org.clojure/tools.logging "0.4.1" :exclusions [org.clojure/clojure]]
and
[seancorfield/next.jdbc "1.0.424"] -> [org.clojure/java.data "1.0.64"] -> [org.clojure/tools.logging "0.6.0"]
and
[twttr "3.2.3"] -> [org.clojure/tools.logging "0.4.1"]
Consider using these exclusions:
[twttr "3.2.3" :exclusions [org.clojure/tools.logging]]
[seancorfield/next.jdbc "1.0.424" :exclusions [org.clojure/tools.logging]]
[clj-oauth "1.5.5"] -> [commons-codec "1.8"]
overrides
[twttr "3.2.3"] -> [clj-oauth "1.5.5"] -> [clj-http "2.0.1"] -> [org.apache.httpcomponents/httpmime "4.5" :exclusions [org.clojure/clojure]] -> [org.apache.httpcomponents/httpclient "4.5"] -> [commons-codec "1.9"]
and
[buddy/buddy-auth "2.2.0"] -> [funcool/cuerdas "2.2.0"] -> [org.clojure/clojurescript "1.10.520"] -> [com.cognitect/transit-clj "0.8.309" :exclusions [org.clojure/clojure]] -> [com.cognitect/transit-java "0.8.332"] -> [commons-codec "1.10"]
and
[twttr "3.2.3"] -> [clj-oauth "1.5.5"] -> [clj-http "2.0.1"] -> [org.apache.httpcomponents/httpclient "4.5" :exclusions [org.clojure/clojure]] -> [commons-codec "1.9"]
and
[clj-oauth "1.5.5"] -> [clj-http "2.0.1"] -> [org.apache.httpcomponents/httpmime "4.5" :exclusions [org.clojure/clojure]] -> [org.apache.httpcomponents/httpclient "4.5"] -> [commons-codec "1.9"]
and
[ring/ring-jetty-adapter "1.9.1"] -> [ring/ring-servlet "1.9.1"] -> [ring/ring-core "1.9.1"] -> [ring/ring-codec "1.1.3"] -> [commons-codec "1.15"]
and
[clj-http "3.12.3"] -> [org.apache.httpcomponents/httpmime "4.5.13" :exclusions [org.clojure/clojure]] -> [org.apache.httpcomponents/httpclient "4.5.13"] -> [commons-codec "1.11"]
and
[clj-http "3.12.3"] -> [org.apache.httpcomponents/httpasyncclient "4.1.4" :exclusions [org.clojure/clojure]] -> [org.apache.httpcomponents/httpclient "4.5.6"] -> [commons-codec "1.10"]
and
[clj-http "3.12.3"] -> [org.apache.httpcomponents/httpclient-cache "4.5.13" :exclusions [org.clojure/clojure]] -> [org.apache.httpcomponents/httpclient "4.5.13"] -> [commons-codec "1.11"]
and
[twttr "3.2.3"] -> [clj-oauth "1.5.5"] -> [clj-http "2.0.1"] -> [commons-codec "1.10" :exclusions [org.clojure/clojure]]
and
[clj-oauth "1.5.5"] -> [clj-http "2.0.1"] -> [org.apache.httpcomponents/httpclient "4.5" :exclusions [org.clojure/clojure]] -> [commons-codec "1.9"]
and
[buddy/buddy-auth "2.2.0"] -> [buddy/buddy-sign "3.1.0"] -> [buddy/buddy-core "1.6.0"] -> [commons-codec "1.12"]
and
[ring/ring-jetty-adapter "1.9.1"] -> [ring/ring-core "1.9.1"] -> [ring/ring-codec "1.1.3"] -> [commons-codec "1.15"]
and
[ring/ring-json "0.5.0"] -> [ring/ring-core "1.7.1"] -> [ring/ring-codec "1.1.1"] -> [commons-codec "1.11"]
and
[compojure "1.6.2"] -> [ring/ring-core "1.8.1"] -> [ring/ring-codec "1.1.2"] -> [commons-codec "1.11"]
and
[clj-http "3.12.3"] -> [org.apache.httpcomponents/httpclient "4.5.13" :exclusions [org.clojure/clojure]] -> [commons-codec "1.11"]
and
[clj-oauth "1.5.5"] -> [clj-http "2.0.1"] -> [commons-codec "1.10" :exclusions [org.clojure/clojure]]
and
[buddy/buddy-hashers "1.4.0"] -> [buddy/buddy-core "1.6.0"] -> [commons-codec "1.12"]
and
[ring/ring-mock "0.4.0"] -> [ring/ring-codec "1.1.1"] -> [commons-codec "1.11"]
and
[ring/ring-core "1.9.1"] -> [ring/ring-codec "1.1.3"] -> [commons-codec "1.15"]
and
[compojure "1.6.2"] -> [ring/ring-codec "1.1.2"] -> [commons-codec "1.11"]
and
[byte-transforms "0.1.4"] -> [commons-codec "1.10"]
and
[clj-http "3.12.3"] -> [commons-codec "1.15" :exclusions [org.clojure/clojure]]
Consider using these exclusions:
[twttr "3.2.3" :exclusions [commons-codec]]
[buddy/buddy-auth "2.2.0" :exclusions [commons-codec]]
[clj-oauth "1.5.5" :exclusions [commons-codec]]
[ring/ring-jetty-adapter "1.9.1" :exclusions [commons-codec]]
[clj-http "3.12.3" :exclusions [commons-codec]]
[ring/ring-json "0.5.0" :exclusions [commons-codec]]
[compojure "1.6.2" :exclusions [commons-codec]]
[buddy/buddy-hashers "1.4.0" :exclusions [commons-codec]]
[ring/ring-mock "0.4.0" :exclusions [commons-codec]]
[ring/ring-core "1.9.1" :exclusions [commons-codec]]
[byte-transforms "0.1.4" :exclusions [commons-codec]]
[clj-oauth "1.5.5"] -> [org.bouncycastle/bcprov-jdk15on "1.54"]
overrides
[buddy/buddy-auth "2.2.0"] -> [buddy/buddy-sign "3.1.0"] -> [buddy/buddy-core "1.6.0"] -> [org.bouncycastle/bcpkix-jdk15on "1.62"] -> [org.bouncycastle/bcprov-jdk15on "1.62"]
and
[buddy/buddy-auth "2.2.0"] -> [buddy/buddy-sign "3.1.0"] -> [buddy/buddy-core "1.6.0"] -> [org.bouncycastle/bcprov-jdk15on "1.62"]
and
[buddy/buddy-hashers "1.4.0"] -> [buddy/buddy-core "1.6.0"] -> [org.bouncycastle/bcpkix-jdk15on "1.62"] -> [org.bouncycastle/bcprov-jdk15on "1.62"]
and
[buddy/buddy-hashers "1.4.0"] -> [buddy/buddy-core "1.6.0"] -> [org.bouncycastle/bcprov-jdk15on "1.62"]
Consider using these exclusions:
[buddy/buddy-auth "2.2.0" :exclusions [org.bouncycastle/bcprov-jdk15on]]
[buddy/buddy-hashers "1.4.0" :exclusions [org.bouncycastle/bcprov-jdk15on]]
[clj-oauth "1.5.5"] -> [org.bouncycastle/bcpkix-jdk15on "1.54"]
overrides
[buddy/buddy-auth "2.2.0"] -> [buddy/buddy-sign "3.1.0"] -> [buddy/buddy-core "1.6.0"] -> [org.bouncycastle/bcpkix-jdk15on "1.62"]
and
[buddy/buddy-hashers "1.4.0"] -> [buddy/buddy-core "1.6.0"] -> [org.bouncycastle/bcpkix-jdk15on "1.62"]
Consider using these exclusions:
[buddy/buddy-auth "2.2.0" :exclusions [org.bouncycastle/bcpkix-jdk15on]]
[buddy/buddy-hashers "1.4.0" :exclusions [org.bouncycastle/bcpkix-jdk15on]]
[ragtime "0.8.1"] -> [ragtime/jdbc "0.8.1"] -> [org.clojure/java.jdbc "0.5.8"]
overrides
[com.layerware/hugsql "0.5.1"] -> [com.layerware/hugsql-adapter-clojure-java-jdbc "0.5.1"] -> [org.clojure/java.jdbc "0.7.10"]
Consider using these exclusions:
[com.layerware/hugsql "0.5.1" :exclusions [org.clojure/java.jdbc]]
[clj-http "3.12.3"] -> [potemkin "0.4.5" :exclusions [org.clojure/clojure]] -> [riddley "0.1.12"]
overrides
[twttr "3.2.3"] -> [aleph "0.4.6"] -> [byte-streams "0.2.4"] -> [manifold "0.1.8"] -> [riddley "0.1.14"]
and
[twttr "3.2.3"] -> [byte-streams "0.2.4"] -> [manifold "0.1.8"] -> [riddley "0.1.14"]
and
[twttr "3.2.3"] -> [aleph "0.4.6"] -> [manifold "0.1.8"] -> [riddley "0.1.14"]
Consider using these exclusions:
[twttr "3.2.3" :exclusions [riddley]]
[com.layerware/hugsql "0.5.1"] -> [com.layerware/hugsql-core "0.5.1"] -> [org.clojure/tools.reader "1.3.2"]
overrides
[com.taoensso/timbre "5.1.2"] -> [com.taoensso/encore "3.12.1"] -> [org.clojure/tools.reader "1.3.3"]
Consider using these exclusions:
[com.taoensso/timbre "5.1.2" :exclusions [org.clojure/tools.reader]]
[buddy/buddy-auth "2.2.0"] -> [funcool/cuerdas "2.2.0"] -> [org.clojure/clojurescript "1.10.520"] -> [com.google.javascript/closure-compiler-unshaded "v20180805"] -> [com.google.errorprone/error_prone_annotations "2.0.18"]
overrides
[buddy/buddy-auth "2.2.0"] -> [funcool/cuerdas "2.2.0"] -> [org.clojure/clojurescript "1.10.520"] -> [com.google.javascript/closure-compiler-unshaded "v20180805"] -> [com.google.guava/guava "25.1-jre"] -> [com.google.errorprone/error_prone_annotations "2.1.3"]
Consider using these exclusions:
[buddy/buddy-auth "2.2.0" :exclusions [com.google.errorprone/error_prone_annotations]]
[buddy/buddy-auth "2.2.0"] -> [funcool/cuerdas "2.2.0"] -> [org.clojure/clojurescript "1.10.520"] -> [com.google.javascript/closure-compiler-unshaded "v20180805"] -> [com.google.code.findbugs/jsr305 "3.0.1"]
overrides
[buddy/buddy-auth "2.2.0"] -> [funcool/cuerdas "2.2.0"] -> [org.clojure/clojurescript "1.10.520"] -> [com.google.javascript/closure-compiler-unshaded "v20180805"] -> [com.google.guava/guava "25.1-jre"] -> [com.google.code.findbugs/jsr305 "3.0.2"]
Consider using these exclusions:
[buddy/buddy-auth "2.2.0" :exclusions [com.google.code.findbugs/jsr305]]
{[abengoa/clj-stripe "1.0.4"] nil,
[buddy/buddy-auth "2.2.0"]
{[buddy/buddy-sign "3.1.0"] nil,
[funcool/cuerdas "2.2.0"]
{[org.clojure/clojurescript "1.10.520"]
{[com.cognitect/transit-clj
"0.8.309"
:exclusions
[[org.clojure/clojure]]]
{[com.cognitect/transit-java "0.8.332"]
{[org.msgpack/msgpack "0.6.12"]
{[com.googlecode.json-simple/json-simple
"1.1.1"
:exclusions
[[junit]]]
nil,
[org.javassist/javassist "3.18.1-GA"] nil}}},
[com.google.javascript/closure-compiler-unshaded "v20180805"]
{[args4j "2.0.26"] nil,
[com.google.code.findbugs/jsr305 "3.0.1"] nil,
[com.google.errorprone/error_prone_annotations "2.0.18"] nil,
[com.google.guava/guava "25.1-jre"]
{[com.google.j2objc/j2objc-annotations "1.1"] nil,
[org.checkerframework/checker-qual "2.0.0"] nil,
[org.codehaus.mojo/animal-sniffer-annotations "1.14"] nil},
[com.google.javascript/closure-compiler-externs "v20180805"] nil,
[com.google.jsinterop/jsinterop-annotations "1.0.0"] nil,
[com.google.protobuf/protobuf-java "3.0.2"] nil},
[org.clojure/google-closure-library "0.0-20170809-b9c14c6b"]
{[org.clojure/google-closure-library-third-party
"0.0-20170809-b9c14c6b"]
nil},
[org.mozilla/rhino "1.7R5"] nil}}},
[buddy/buddy-hashers "1.4.0"]
{[buddy/buddy-core "1.6.0"] {[net.i2p.crypto/eddsa "0.3.0"] nil},
[clojurewerkz/scrypt "1.2.0"]
{[com.lambdaworks/scrypt "1.4.0"] nil}},
[byte-transforms "0.1.4"]
{[net.jpountz.lz4/lz4 "1.3"] nil,
[org.apache.commons/commons-compress "1.9"] nil,
[org.xerial.snappy/snappy-java "1.1.1.7"] nil},
[cheshire "5.10.0"]
{[com.fasterxml.jackson.core/jackson-core "2.10.2"] nil,
[com.fasterxml.jackson.dataformat/jackson-dataformat-cbor "2.10.2"]
nil,
[com.fasterxml.jackson.dataformat/jackson-dataformat-smile "2.10.2"]
nil,
[tigris "0.1.2"] nil},
[clj-http "3.12.3"]
{[org.apache.httpcomponents/httpasyncclient
"4.1.4"
:exclusions
[[org.clojure/clojure]]]
{[org.apache.httpcomponents/httpcore-nio "4.4.10"] nil},
[org.apache.httpcomponents/httpclient-cache
"4.5.13"
:exclusions
[[org.clojure/clojure]]]
nil,
[org.apache.httpcomponents/httpclient
"4.5.13"
:exclusions
[[org.clojure/clojure]]]
{[commons-logging "1.2"] nil},
[org.apache.httpcomponents/httpcore
"4.4.14"
:exclusions
[[org.clojure/clojure]]]
nil,
[org.apache.httpcomponents/httpmime
"4.5.13"
:exclusions
[[org.clojure/clojure]]]
nil,
[potemkin "0.4.5" :exclusions [[org.clojure/clojure]]]
{[riddley "0.1.12"] nil},
[slingshot "0.12.2" :exclusions [[org.clojure/clojure]]] nil},
[clj-oauth "1.5.5"]
{[commons-codec "1.8"] nil,
[org.bouncycastle/bcpkix-jdk15on "1.54"] nil,
[org.bouncycastle/bcprov-jdk15on "1.54"] nil},
[clojure-complete "0.2.5" :exclusions [[org.clojure/clojure]]] nil,
[clojure.java-time "0.3.3"] {[clj-tuple "0.2.2"] nil},
[com.layerware/hugsql-adapter-next-jdbc "0.5.1"]
{[com.layerware/hugsql-adapter "0.5.1"] nil},
[com.layerware/hugsql "0.5.1"]
{[com.layerware/hugsql-adapter-clojure-java-jdbc "0.5.1"] nil,
[com.layerware/hugsql-core "0.5.1"]
{[org.clojure/tools.reader "1.3.2"] nil}},
[com.stripe/stripe-java "20.77.0"]
{[com.google.code.gson/gson "2.8.8"] nil},
[com.taoensso/timbre "5.1.2"]
{[com.taoensso/encore "3.12.1"] {[com.taoensso/truss "1.6.0"] nil},
[io.aviso/pretty "0.1.37"] nil},
[compojure "1.6.2"]
{[clout "2.2.1"]
{[instaparse "1.4.8" :exclusions [[org.clojure/clojure]]] nil},
[medley "1.3.0"] nil,
[org.clojure/tools.macro "0.1.5"] nil,
[ring/ring-codec "1.1.2"] nil},
[environ "1.2.0"] nil,
[failjure "2.2.0"] nil,
[nrepl "0.8.3" :exclusions [[org.clojure/clojure]]] nil,
[org.clojure/clojure "1.10.3"]
{[org.clojure/core.specs.alpha "0.2.56"] nil,
[org.clojure/spec.alpha "0.2.194"] nil},
[org.xerial/sqlite-jdbc "3.36.0.1"] nil,
[ragtime "0.8.1"]
{[ragtime/core "0.8.1"] nil,
[ragtime/jdbc "0.8.1"]
{[org.clojure/java.jdbc "0.5.8"] nil, [resauce "0.1.0"] nil}},
[ring-cors "0.1.13"] nil,
[ring-logger "1.0.1"] {[org.clojure/tools.logging "0.3.1"] nil},
[ring/ring-core "1.9.1"]
{[commons-fileupload "1.4"] nil,
[commons-io "2.6"] nil,
[crypto-equality "1.0.0"] nil,
[crypto-random "1.2.0"] nil},
[ring/ring-defaults "0.3.2"]
{[javax.servlet/javax.servlet-api "3.1.0"] nil,
[ring/ring-anti-forgery "1.3.0"] {[hiccup "1.0.5"] nil},
[ring/ring-headers "0.3.0"] nil,
[ring/ring-ssl "0.3.0"] nil},
[ring/ring-jetty-adapter "1.9.1"]
{[org.eclipse.jetty/jetty-server "9.4.36.v20210114"]
{[org.eclipse.jetty/jetty-http "9.4.36.v20210114"]
{[org.eclipse.jetty/jetty-util "9.4.36.v20210114"] nil},
[org.eclipse.jetty/jetty-io "9.4.36.v20210114"] nil},
[ring/ring-servlet "1.9.1"] nil},
[ring/ring-json "0.5.0"] nil,
[ring/ring-mock "0.4.0"] nil,
[seancorfield/next.jdbc "1.0.424"]
{[org.clojure/java.data "1.0.64"] nil},
[twttr "3.2.3"]
{[aleph "0.4.6"]
{[io.netty/netty-codec-http "4.1.25.Final"] nil,
[io.netty/netty-codec "4.1.25.Final"] nil,
[io.netty/netty-handler-proxy "4.1.25.Final"]
{[io.netty/netty-codec-socks "4.1.25.Final"] nil},
[io.netty/netty-handler "4.1.25.Final"] nil,
[io.netty/netty-resolver-dns "4.1.25.Final"]
{[io.netty/netty-codec-dns "4.1.25.Final"] nil},
[io.netty/netty-resolver "4.1.25.Final"] nil,
[io.netty/netty-transport-native-epoll "4.1.25.Final"]
{[io.netty/netty-common "4.1.25.Final"] nil,
[io.netty/netty-transport-native-unix-common "4.1.25.Final"] nil},
[io.netty/netty-transport "4.1.25.Final"]
{[io.netty/netty-buffer "4.1.25.Final"] nil},
[manifold "0.1.8"] {[io.aleph/dirigiste "0.1.5"] nil}},
[byte-streams "0.2.4"] {[primitive-math "0.1.6"] nil},
[org.clojure/data.json "0.2.6"] nil}}
also here's my project.clj dependencies
:dependencies [[org.clojure/clojure "1.10.3"]
[compojure "1.6.2"]
[ring/ring-defaults "0.3.2"]
[seancorfield/next.jdbc "1.0.424"]
[ragtime "0.8.1"]
[ring/ring-json "0.5.0"]
[ring-cors "0.1.13"]
[ring/ring-core "1.9.1"]
[ring/ring-jetty-adapter "1.9.1"]
[ring/ring-mock "0.4.0"]
[environ "1.2.0"]
[cheshire "5.10.0"]
[failjure "2.2.0"]
[buddy/buddy-hashers "1.4.0"]
[buddy/buddy-auth "2.2.0"]
[org.xerial/sqlite-jdbc "3.36.0.1"]
[ring-logger "1.0.1"]
[com.stripe/stripe-java "20.77.0"]
[clj-oauth "1.5.5"]
[twttr "3.2.3" :exclusions [org.clojure/tools.logging riddley]]
[clj-http "3.12.3"]
[abengoa/clj-stripe "1.0.4"]
[com.layerware/hugsql "0.5.1"]
[com.layerware/hugsql-adapter-next-jdbc "0.5.1"]
[com.taoensso/timbre "5.1.2"]
[clojure.java-time "0.3.3"]
[byte-transforms "0.1.4"]
]
I'm trying to update my own twitter banner, but this exception keeps getting thrown. I've tried multiple different things, but I'm not convinced it's my code anymore. It's totally possible I'm making some mistake still. I've included what I think is a very simple call to the api that isn't working.
Ideally I could make the call without the exception popping up.
EDIT: also I know the code is partly working because it's still updating my Twitter banner.