temp_la :: Memo

https://twitter.com/temp_la

ツイッターbotのソースを公開しました

表題の件、githubに投稿しました。

github.com

botのアカウントはこれ。

https://twitter.com/zappa_gg

アクセストークンがソースに直書きだったので今まで公開できませんでした。

GAEは今年からJava1.7→Java1.8になったのでこちらも対応しました。

ツイッターのフォロー/リムーブのロジックも直しました。

(3000人フォロワーを超えて上手く動いてませんでした多分。)

以下は、ハマったところ。

ローカルで開発した時は上手くいってたがあ、GAEにデプロイして動かすと以下のエラーでツイッターにアクセスできなかった。

api.twitter.com
Relevant discussions can be found on the Internet at:
http://www.google.co.jp/search?q=739d56c7 or
http://www.google.co.jp/search?q=70d45818
TwitterException{exceptionCode=[739d56c7-70d45818 a6d63e39-a9b6a6af], statusCode=-1, message=null,\
code=-1, retryAfter=-1, rateLimitStatus=null, version=4.0.7}

ステータスコード-1で、StacktraceにはSocket Errorとか、api.twitter.comが無いみたいな事が書かれていて、GAE側の問題だった模様。

appengine-web.xmlにurl-stream-handlerの設定を追加しました。

これは、Java.1.7→Java1.8になってデフォルト値がnativeになったことが原因とのこと。課金の設定をしていないと、UnknownHostExceptionとかのエラーが起きちゃうよということらしいのです。

https://cloud.google.com/appengine/docs/standard/java/issue-requests?hl=ja#java_8_runtime_vs_java_7_behavior

appengine-web.xml リファレンス  |  Java の App Engine スタンダード環境  |  Google Cloud

 うまく動いてくれるといいね。