2014/02/03

Tiny Tiny RSS と News+ で two-way-sync

Google Readerが2013年7月にサービスを終了した後、Feedlyを始めとするRSSリーダを試してきたのですがハイテク(死語)なWeb UIが何となくしっくり来なくて、The Old Readerもいいけれど、せっかくだから俺は自前サーバで Tiny Tiny RSSを選ぶぜ! という感じで運用しています。
#サーバ側もAndroidクライアント側もアプリ名が Tiny Tiny RSS なので、以降ややこしいです

Android用 Tiny Tiny RSSクライアントとして純正の Tiny Tiny RSSを使用していたのだけれど、外部アプリとの連携が弱いので他のリーダーを試していると News+(gReaderの次期バージョン) に Tiny Tiny RSSプラグインを入れたものがなかなか使いやすかったので、それらをインストールした際のメモ。
Android側は普通に導入すれば良いので特に書くことはありません。

AndroidのNews+ & Tiny Tiny RSSプラグインから双方向同期をとるためにはサーバ側にそれ用のプラグインを導入しておく必要があります。

Tiny Tiny RSSの各種プラグイン
http://tt-rss.org/redmine/projects/tt-rss/wiki/Plugins

getCompactHeadlines(News+用プラグイン)のフォーラム
http://tt-rss.org/forum/viewtopic.php?f=22&t=2465&p=13986#p13984

getCompactHeadlinesプラグインのURL
https://github.com/hrk/tt-rss-newsplus-plugin
ダウンロードは右下の "Download ZIP"から、わかりづらいですね。

getCompactHeadlinesのフォーラムをざっと眺めていると、サーバ側のTiny Tiny RSSが古いとダメとか何とか書いてあるように読めたので、まずは サーバ側 Tiny Tiny RSSをアップグレードします(もしかすると、アップグレードしなくても良かったのかも知れません)
Tiny Tiny RSSのインストール/アップグレード方法は本家Webサイトの Installation Guide ( http://tt-rss.org/redmine/projects/tt-rss/wiki/InstallationNotes ) に書かれています。今回は推奨されている In-place upgrading (updaterプラグインを使用する方法)を採用しました。

 まず、WebブラウザからTiny Tiny RSSに管理者権限アカウントでログイン。普段はadminでログインしないのでパスワードをすっかり忘れていましたよ。

右上の 「操作」から「設定」を選択して 「Tiny Tiny RSSを更新する」を選択。

updaterプラグインは /webroot/tt-rss ディレクトリ と その親ディレクトリ(/webroot)に書き込み権限が必要なので、/webroot に一時的に 書き込み権限を付与しておきます。
(updaterプラグインが /webroot/tt-rss を /webroot/tt-rss-oldApABtr としてバックアップを作成するため )

アップデートが終了した(?)と思ったら、ナニヤラエラーがハッセイシマシタ。

Startup failed
 Tiny Tiny RSS was unable to start properly. This usually means a misconfiguration or an incomplete upgrade. Please fix errors indicated by the following messages:
  Required configuration file parameter DETECT_ARTICLE_LANGUAGE is not defined in config.php. You might need to copy it from config.php-dist.
 You might want to check tt-rss wiki or the forums for more information. Please search the forums before creating new topic for your question.
確認するとconfig.php に DETECT_ARTICLE_LANGUAGE の設定がないので、言われたとおりに config.php-distから以下の部分を config.phpに追加します。(//はコメント文なので不要でしょう)
define('DETECT_ARTICLE_LANGUAGE', true);
// Detect article language when updating feeds, presently this is only
// used for hyphenation. This may increase amount of CPU time used by
// update processes, disable if necessary (i.e. you are being billed
// for CPU time).
管理者権限でログインし直すとなにやらデータベースの更新がしばらく続いて、upgrade完了。

さて、やっと本題の News+ 用 Tiny Tiny RSS プラグイン(getCompactHeadlines)を導入します。

プラグインの(https://github.com/hrk/tt-rss-newsplus-plugin)の説明通りインストールしても、フォーラム(http://tt-rss.org/forum/viewtopic.php?f=22&t=2465&p=13986#p13984) と同じく、プラグインを有効にするためのチェックボックスにチェックが入らない。
フォーラムを読んでも "wikiを見ろ" としか書かれていない。
よくよく読んで、config.php の PLUGINS に api_newsplus を追加せよ とのことと判断した。

define('PLUGINS', 'auth_internal, note, updater, api_newsplus');

さっそく News+ からアクセスしてみても、 401エラー。

apacheのエラーログ
[Mon Feb 03 15:41:59 2014] [error] [client 2xx.xxx.xxx.98] user hoge  not found: /tt-rss/api/
 apacheのアクセスログ
foo.bar.jp - hoge  [03/Feb/2014:15:41:10 +0900] "POST /tt-rss/api/ HTTP/1.1" 401 845 "-" "-"
ファイルのオーナー/パーミッションを見直してみてもなぜ 401エラーなのか不明... 純正のAndroid用Tiny Tiny RSSからは正常に閲覧できるのに...

いろいろ悩んだのですが、結局 /webroot/tt-rss/.htaccess が書き換えられていたからでした。自分で自分の首を締めていたみたいです。バックアップを参照に元に戻して正常にアクセスできました。てへっ。

#でも何故純正TT-RSSアプリなら大丈夫なのか...


0 件のコメント:

コメントを投稿