BLOGTIMES
2014/01/22

Twitter4J で HTTPS を有効にする

  twitter 
このエントリーをはてなブックマークに追加

Twitter の API は1月14日から HTTPS のみのサポートになっていた*1*2のを他人事のように眺めていましたが、Twitter4J を使って作った自作アプリも動かなくなっていました。

具体的にはこんな感じの Exception を吐きます。

Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58) Caused by: Server returned HTTP response code: 403 for URL: http://api.twitter.com/1.1/statuses/update.json Relevant discussions can be found on the Internet at: http://www.google.co.jp/search?q=b2b52c28 or http://www.google.co.jp/search?q=10981ac7 TwitterException{exceptionCode=[b2b52c28-10981ac7 4ef6906d-026b39e1 4ef6906d-026b39df], statusCode=-1, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=3.0.3} at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:192) at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61) at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:98) at twitter4j.TwitterImpl.post(TwitterImpl.java:1871) at twitter4j.TwitterImpl.updateStatus(TwitterImpl.java:241) at HsurHeadacheApp.main(HsurHeadacheApp.java:84) ... 5 more Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: http://api.twitter.com/1.1/statuses/update.json at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1491) at java.security.AccessController.doPrivileged(Native Method) at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1485) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1139) at twitter4j.internal.http.HttpResponseImpl.<init>(HttpResponseImpl.java:36) at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:156) ... 10 more

本当は Twitter4J を最新にアップデートすれば良いんでしょうが、今回は設定ファイルである twitter4j.properties*3 に http.useSSL=true という行を追加して逃げました。これで通信が HTTPS になるのでひとまず動くようにはなります。


トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/6422
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン