FabricでTweetする時に分からなかったこと(Android)
せっかっくの休みなので、何かしようかと思い立ち、Android Studioを使ってTweetするアプリを作ってみた。
ほとんど↓の通りで良かったのだけど、肝心の投稿の部分がうまくいかなかった。
Android StudioとFabricでTweetする - Qiita
どうも、FabricのバージョンアップでStatusesServiceのupdateメソッドが変わってしまったらしい。適当にググってみても日本語のページが見つからず少し苦労した。最終的には↓を参考にして、適当にやったらうまくいったので備忘録としておく。
MediaService success to upload, but nothing show in the timeline - Twitter - Twitter Developers
レトロフィットRetrofitが必要なので、build.gradleに↓を追加して。
compile 'com.squareup.retrofit2:retrofit:2.1.0'
本体は↓の様に改変した。
private void tweet(String message) {
TwitterApiClient twitterApiClient = TwitterCore.getInstance().getApiClient();
StatusesService statusesService = twitterApiClient.getStatusesService();
Call<Tweet> call = statusesService.update(message, null, false, null, null, null, false, false, null);
call.enqueue(new Callback<Tweet>() {
@Override
public void success(Result<Tweet> result) {
Toast.makeText(getApplicationContext(), "post success", Toast.LENGTH_LONG).show();
}
public void failure(TwitterException exception) {
Toast.makeText(getApplicationContext(), "post fail", Toast.LENGTH_LONG).show();
Log.d(TAG, exception.toString());
}
});
}
VAIO PにWindows10
以前にも一度入れてみたのですが、その時には認証がうまくできずwin7に戻していました。win7のプロダクトキーが使用できる様になったとの話を聞いて、再度挑戦しました。(この時にDouble Driverを使用してドライバをコピーしていました。)
USBメモリでインストーラーを作成して、本体の左側のUSBに刺してUSBメモリから立ち上げインストールしました。
デバイスマネージャで見ると、WiMAXを始め幾つかのデバイスが使用できていませんでしたが、コピーしていたドライバをインストールすることで対応できました。
ただ、Sony Firmware Extension Parser DeviceとSony Programmable I-O Control Deviceについては、64bit用と誤認されてしまい動作しませんでした。そこで、一旦これらのドライバをアンインストールし、oem5.infを修正、再度インストールすることで解決できました。
修正点は単純に、x64となっている項目を削除するだけです。sfepx86.catも削除しました。この結果(カタログファイルとの齟齬があるため?)インストールするときに警告が出ます。
epubの修正スクリプト?の改定
素人が適当に作っています。自己責任でお願いします。
narou.rbとAozoraepub3からの修正(改悪かも)用のスクリプトです。
1年以上放置していたのですが、最近いろいろupdateしたら動かなくなっていたので修正しました。
変更点は、外字フォント用のフォルダが出来ていたのでmanifestに追加ぐらいです。
epubcheck4.0.1で見ると、absolute positionとかいう警告が出ます。
epubのエラー対策
前のエントリで書いたように、narou.rbとAozoraEpub3を使用して作ったepubをGoogle Play ブックスにアップロードすると、epubのエラーでうまくいかない。エラーは3種類あって、一応の対応方法は見つけたけれど、たぶん正しい方法ではないと思う。それぞれの作者に相談して修正してもらう方が良いとは思うのだけど、自信が無いのでとりあえずここに書いておく。素人が適当にやっているので、参考程度に。実行するのは自己責任でお願いします。
nav.xhtmlの"title-page"
1つ目、epubをunzipするとディレクトリ2つ(META-INFとOPS)とmimetypeってファイルが出てくるのですが、このOPSの下の/xhtml/nav.xhtmlの問題。title-pageが定義されていないって言うんだけど…。何が正解かわからない。とりあえず、ハイフンを削除してtitlepageに修正すれば通るのでこれで行く。
AozoraEpub3-1.1.0b38/template/OPS/xhtml/xhtml_nav.vm の52行目
<li><a epub:type="title-page" href="title.xhtml">扉</a></li>
を
<li><a epub:type="titlepage" href="title.xhtml">扉</a></li>
へ修正。
nav.xhtmlのelement "ol"
2つ目、同じくnav.xhtmlの問題。<li>タグのすぐ後ろに<ol>タグが来るのはepub3ではNGらしい。<a>か<span>タグを間に入れろってことだと思う。一々修正してもいいけど、面倒くさいのでネストしないようにする。
AozoraEpub3-1.1.0b38/AozoraEpub3.ini (このファイルはnarou.rbでinitするとコピーされてくる)の58行目 NavNest=1 を NavNest=0 に修正
濁点フォント
3つ目、narou.rbは必要に応じて「あ”」見たいな表現用のフォントを入れてくれるのだけど、このフォントに関する問題。フォントが使用されている場合、manifestで定義されていないってエラーが出る。フォントが使用されていない場合、/OPS/css/vertical_font.css に記載されたフォントがepubパッケージに入っていないってエラーが出る。対応としては、このフォントを使わないか、常に入れてしまう。
濁点フォントを使わない場合
narou.rb側で、以下のコマンドを実行。
narou setting force.enable_dakuten_font=false
AozoraEpub3-1.1.0b38/template/OPS/css_custom/vertical_font.css の28行目から36行目までを削除。
濁点フォントを常に入れてしまう場合
AozoraEpub3-1.1.0b38/template/OPS/package.vm の47行目<manifest>から104行目</manifest>の間で邪魔にならないところ(例えば104行の前)に以下を挿入。
<item id="epub.embedded.font.1" href="fonts/DMincho.ttf" media-type="font/opentype"/>
gems/narou-2.1.0/lib/novelconverter.rb の147行目以下の行をコメントアウト。
stash_aozora_fonts_directory unless use_dakuten_font
# stash_aozora_fonts_directory unless use_dakuten_font
で行けるはず。
蛇足
上記の変更を何もしないままで、作成されたepubを修正するスクリプトも作ったのでそれも別のエントリでアップします。
Google Play ブックス で 縦書きepubについて
はじめに
ここ何周か週末にやった事の記録を残しておこうと思う。
何がしたかったかと言うと、「なろう」の小説をMac、iPadそれから最近買ったwintabで同期しながら読みたかった。で、いくつかサービスを調べたところGoogle Play ブックスかkinoppyでいけそう。google教徒の僕としてはGoogle Play ブックス一択だったわけです。
epub作成
どうせやるなら縦書きで読みたかったので、narou.rb を利用させて頂いてepubを作ってみた訳です。ところが、Google Play ブックスにアップロードするとepubのエラーで受け付けてくれない。エラーへの対応は別のエントリに書くつもり。で、修正したepubをアップするとこんな感じ。
横書きの目次まではちゃんと表示されるんだけど、本文はダメ。上1/3ぐらいまでしか使用されない。iPadのアプリだとちゃんと表示されるのでwebアプリの問題か?
迷走
epubのエラー修正でいい気になったせいか、cssでも適当に修正すればちゃんと表示できるんじゃないかと思った。一つには、googleのショップで無料購入?した青空文庫の書籍がちゃんと表示されるから。例えば。
今みてみれば、スキャンしたイメージが表示されていることは、表示オプションを見れば分かったはずなのに…
しばらくcssやら何やらを弄ってうまくいかず、ある時間違えてgoogleのショップからダウンロードした青空文庫のepub版人間失格をアップして漸く分かった。
とういうことで、終了