TinyTimeLine

出典: JUDSTYLE

TinyTimeLineは、twitterにて簡易的なタイムラインの表示と投稿を行う、Webサーバ上で動作する軽量アプリケーション。twitterへのアクセスにはOAuth/xAuthを使用し、各端末からほぼ同一のIFを提供する。

目次

対応バージョン

このマニュアルは、頁末でダウンロード可能なVer.2.10に対応。

動作環境

サーバ
Linux/PHP5
クライアント
cookieを扱えるブラウザ

インストール

twitteroauthのダウンロード

githubより、abraham氏が作成・公開しているtwitteroauthライブラリをダウンロードしてください。

スクリプト設置

作成したディレクトリにTinyTimeLineのスクリプトindex.phpと、設定ファイルttlsettings.phpを設置してください。また、ダウンロードしたtwitteroauthライブラリも対象ディレクトリに設置してください。なお、TinyTimeLineのスクリプトファイル名は変更可能です。

  • index.php
  • ttlsettings.php
  • ttlinit.php
  • ttlkeys.php
  • ttl.css
  • OAuth.php
  • twitteroauth.php

ConsumerKey/Secretの取得

twitterにアクセスして、ConsumerKey/Secretの取得を行ってください。

AccessToken/TokenSecretの取得

twitter/developにアクセスして、AccessToken/TokenSecretの取得を行ってください。

TinyTimeLineの設置時設定を実施

TinyTimeLineの設置時設定を行います。ttlsettings.phpの編集を行い、以下の通り設定を行ってください。

動作設定(1)

ttlkeys.php に対して、前節まででtwitterより取得したConsumerKeyとAccessToken類を設定してください。ここに記述してあるものはサンプルなので、でたらめです。そのままで使用することはできません(が、取得した文字列は多分こんな長さの文字列なはずです)。

$tockey = "Ejd83Ze9zWd7E28xg7E5gg";
$tocsec = "2rnDYTq48wqd4RdCzjPEkJpPu3YGoPVhzebmlvD90ep";

cookieの設定も必要です。設置ディレクトリ、設置ドメイン、有効期限(秒)を設定してください。有効期限は、ブラウザ側での有効期限です。

$md="/TTL/";
$mi="exsample.jp";
$EXP=24*60*60 * 8;

認証用のパスワードファイル名を設定してください。既存の一般的な.htpasswdを流用することができます。

$PF="./.ttlpasswd";

動作設定(2)

ttlsetting.php では、 twitteroauth.phpの設置場所をindex.phpと異なる場所に設置している場合、設置場所を示す必要があります。以下はその例です。

require_once("./OALIB/twitteroauth.php");

このスクリプトを使うときのタイトルを設定します。

$CN="TinyTimeLine";

表示関連設定

TimeLineを表示する際に、$tll/$tlu にて、一度に取得するTweetの数を変更可能です。200くらいまでは設定可能である模様ですが、そのまま動作速度やHTMLサイズに跳ね返ってくるので程々がお勧めです。

$tll=40; // Home,Mentions用
$tlu=20; // user用

Homeで表示することができる世代数を $txg 設定できます。1であれば、過去世代を遡ることはできません。$tll×$txgの数はTwitterAPIにより制限されています。190くらいまではテストで確認しています。

$txg=4;

テキストボックスの大きさを示します。使用している携帯電話やPCブラウザなど、好みに応じて変更してください。

$fsz="84";
$fss="44"; // スマートフォン用

認証設定

.ttlpasswdを設定する必要があります。記述ルールは以下の通りです。

username:password:AccessToken:AccessTokenSecret

passwordはdes暗号化されている必要があります。以下のサンプルを示しますが、ConsumerKeyと同様でたらめです。そのままで使用することはできません(が、取得した文字列は多分こんな長さの文字列なはずです)。

zerowing:ZWMCOjVZ/V7ac:90185427-4Vj3Yq5n6GBGfENxndMMstVFVzJFRp0O1lRaEqA2L:pi7tWI1mDh8o6qzjwBg6yZ4UqxwwB474eLmxGcssoSN

DES暗号化については以下の通りコマンドラインから入力することで取得することができます("ZW"の部分は任意の2文字以上の英数文字を入力してください)。

% php -r 'echo crypt("AYBABTU","ZW")."\n";'
ZWMCOjVZ/V7ac
%

複数設定することも可能です。その場合はAccessToken/TokenSecretを別々に取得する必要があります。

使い方

ログイン

このスクリプトをブラウザから見ると、認証を求められます。前節で設定したusernameとpasswordを入力し、「Login」ボタンを押すとログインできます。

ログイン有効期限
ログインセッションはcookieで与えられ、ブラウザを終了させてもcookieはクリアされません。設定項目 $EXPにて変更可能ですが、初期状態では2日間に設定されています。サーバ側のセッション有効期限についてはPHPに関するサーバ設定で制御されています(一般的には未使用のセッションは24分ごとに1/100の確率で削除されます。

次回以降のログインでは、クライアント・サーバのどちらも有効期限が切れていなければログインは不要で、すぐにタイムラインが表示されます。

ログアウト

ログイン後のいずれかの画面で「Logout」をクリックすれば、ログアウト処理が行われます。次回以降、画面を開いたときにログインする必要があります。また、セッション期限切れの場合はEXPIREと、ログイン失敗時にはNGと、ログインしていない場合はNOTLOGINと表示されます。

タイムライン

TTL V0.91のスクリーンショット
拡大
TTL V0.91のスクリーンショット

ログイン後は、右側サムネイルのような画面が表示されます。タイムライン抑止設定をしていれば、入力フォームのみ表示されます。「Timeline」をクリックすると最新のタイムラインが、「1/2/3」をクリックすると1~3世代前のタイムラインが、「NextXX」をクリックすると現在表示しているものより1世代前のタイムラインが表示されます。

投稿

テキストボックスに入力し、「Twit」ボタンをクリックすると投稿できます。twitterWebなどで表示される投稿アプリケーション名には、ConsumerKey取得時に設定したアプリケーション名が表示されます。

Reply

タイムライン上のReをクリックすると、Re画面が表示されます。Re対象となった1件のみ表示され、テキストボックスにはメッセージとリプライ先ユーザ名が予め入力されています。ここでテキストボックスに入力し(あるいはそのまま)「Re」ボタンをクリックすると投稿されます。通常の投稿との違いは以下の通り。

  • 入力用のテキストボックスに、予めユーザ名が入力されています。
  • リプライ元のメッセージIDが付与されているので、公式のReと同等になります。

QT

タイムライン上のQTをクリックすると、QT画面が表示されます。QT対象となった1件のみ表示され、テキストボックスにはメッセージとリプライ先ユーザ名が予め入力されています。ここでテキストボックスに入力し(あるいはそのまま)「QT」ボタンをクリックすると投稿されます。Reとの違いは以下の通り。

  • 入力用のテキストボックスに、予め引用文が入力されています。
  • Reと異なり、メッセージIDの紐付けが行われないので、返信扱いにはなりません。ゆえに、全てのフォロワーのタイムラインに表示されます。
  • 公式RTとの違いについても同様で、リツイート扱いにはなりません。

HOME

タイムライン下端のHOMEをクリックすると、通常のタイムラインに加えて、Mentions(@付きで自分のscreen-nameが記述されているツイート)と被RT、プロフィール、リスト一覧が表示されます。RT数での括弧付き数字は被RT回数、リストの括弧付き数字はリストがフォローしているユーザ数です。

  • Mentionsではフォローしていないユーザのツイートも含まれます。

リスト

リストのタイムラインとリストがフォローしているユーザ一覧を表示します。

ユーザ情報

タイムライン上のユーザ名をクリックすると、ユーザ情報画面が表示されます。該当ユーザの最近のツイートと、そのユーザが表示するよう登録したステータス(フォロー,被フォロー,URL,プロフィール,所在地,プロテクト)そのユーザが公開しているリスト一覧が表示されます。プロテクト状態は、プロテクトが有効な場合のみ表示されます。

ライセンス

  • このスクリプトの利用は自由です。使用、改変、配布、引用、いずれにも許諾不要です。配布は有償無償を問いません。
  • このスクリプトの利用に関する問題の責はJUDが負うものではありません。

問い合わせ

質問・苦情・要望は @Judstyle - twitter まで。

Download

  • Version2.34
    パラメータなし時の動作をホーム・Mentions・被RTタイムライン連続表示に変更。
    LOGIN後やPOST後のタイムラインもホーム・Mentions・被RTタイムライン連続表示に変更。
    act=NL(タイムライン非表示)からのPost後にタイムライン非表示状態を持続するよう変更。
    UAからガラケーであると判定した場合に以下通り専用表示とする。
    • 表示件数を減らしHOMEでのME/RT表示を行わない。
    • パラメータなし時にはタイムライン非表示とする仕様を追加。
    • ユーザ名および本文中のリンクを無効化。
    ホーム・Mentions・被RTタイムライン連続表示時に投稿者名が表示されないことがあるbugをfix
  • Version2.31
    RE/QT時にtwitterサイトの1件表示用URLを表示する機能を追加。
    RE/QT時にShortcutsのNewが変なところを指しているbugをfix
  • Version.2.30
    ユーザタイムライン・リストタイムライン表示の表示件数設定をホームタイムラインと統合し、それぞれ4頁まで遡れる仕様に変更。件数と遡れるページ数は変更可能。
    ショートカットを再編成し、『TL,1-3』はホーム・ユーザ・リスト各タイムライン時のみ表示し該当タイムラインの表示頁への誘導『New,1-3』に変更。HOME(通常TL,Mentions,被RT,プロファイル,リスト一覧)時の2頁目以降ではMentionsおよび被RTを表示しない。
  • Version.2.24
    Mentions, 被RTを表示する"@me"を発展解消して"HOME"に変更。通常Timeline, Mentions, 被RT, 自Profile, 自Listを一括表示する。"@me"の機能自体は残している(従来どおりact=ME。HOMEはact=HOME)
    通常TimelineリンクのURLを変更(URLに空のCGIパラメータ"act="を追加)
    リスト一覧の表示様式を変更(full_nameをやめて、@user/nameに変更。リスト対象者数を追加。公開リストがない場合のメッセージ追加)
    リストタイムライン表示時に、最後尾にリスト対象者一覧表示を追加。
    html書式に誤りがあるbugをfix。
    リスト表示可能件数が反映されていないbugをfix。
  • Version.2.23
    ユーザ情報表示に、参照可能なリストの一覧を表示する機能を追加。
    リストのタイムラインを表示する機能を追加。
  • Version.2.21
    httpsのURLも自動リンク対象にするよう変更。
    Mentions/RTの設定された表示期限を過ぎたTweetを表示しない機能を追加。

Old

  • Version.2.20
    公式RT元screen_nameからユーザ情報画面への誘導を追加。
    最近24時間の自分のtweetを表示するTodayLine機能(旧todayline.php)を統合。
    Mentionsに続けて被RTのリストを表示する機能を追加。また表示可能数について個別に設定可能なように変更。
    最近24時間分の自分のツイートをまとめてメールで送信する機能を追加。
    最近24時間分の自分のツイートを表示またはメールで送信する場合に限り、twitterへのアクセス時エラーをリトライする機能を追加。
    本文中のURLリンクについて、固定の『Link』ではなくドメイン部を表示するように変更。
    本文中のURLリンクについて、(ツイートのメタ情報がある場合に限って)t.coを展開するように変更。
    本文中のURLリンクについて、リンク先がtwitterの1コメントだった場合、RE機能で1件表示する機能を追加。
    本文中に『@ 』(半角アットマーク→全半角空白)または文末にアットマークが存在するとタイムラインが表示できないbugをfix。
  • Version.2.10
    全面的なコードの見直しとリファイン。各種内部パラメータの変更。
    携帯電話ショートカットキー機能をオミット。
    投稿長さチェックを廃止しtwitterサーバサイドでのエラー判定に頼るよう仕様を変更(URLが強制的に短縮されてしまうようになり、文字列長さの計算ができなくなるため)
    ユーザ情報ページ(最近のポストと一部ユーザ情報表示)を実装。
    タイムライン非表示モードを統合。
    URLのアンカータグ化基準を変更(全半角空白・半角括弧閉じ・改行・Tab)
    投稿者ユーザ名表示・本文中の@付きscreen_nameからのユーザ情報ページへの誘導。
    公式RTの表示様式を変更。
    構成ファイルの変更及び一部のCSS対応。
    Re/QT投稿エラー時の画面表示BugをFix。
  • Version.1.02
  • Version.1.01
  • Version.1.00
  • Version.0.97
  • Version.0.96
  • Version.0.93