読者です 読者をやめる 読者になる 読者になる

Google Apps ScriptでつくったTwitterクライアントに機能を追加しました

Google Apps Script(以下GAS)版つぶのみに機能を追加しました。
追加した機能は、ユーザータイムラインと検索タイムラインの表示、本文中のURLやメンション情報などのTweet Entitiesを表示するようにといった所です。これで画像などのURLにリンクからジャンプすることが出来るようになります。
それと、使う場合の手順で、シート名の変更が不要になりました。メンション、検索、ユーザーなど、それぞれのタイムラインを表示するシートは、なければ勝手に作られるようになっています。


ソースはこちら

スクリーンショット


メニューにuserTimeline,searchが増えてます
reloadは、開いているシートに合わせてタイムラインを手動更新するようになりました


タイムラインを呼び出した時に、mentions,search,userのシートがなければ勝手に作成されます


セルを選択した状態で・・・


メニューからuserTimelineを選択すると、選択されていたセルの内容が挿入されます*1
検索の場合も同様で、選択されていたセルの内容が挿入されます


ユーザータイムラインが表示されました


検索タイムラインも同様です


日付の次のセルから、本文中のURLやメンション情報などのTweet Entitiesを表示


日付の次のセルまで範囲選択した状態で・・・


メニューからtweetを選ぶと、複数人にリプライになります
あ、文字数カウントも追加しました
若干反応がもっさりしてますが


URLのセルはクリックするとリンクが表示されますので、そこから画像などのURLへ飛ぶことができます

機能追加の予定


お気に入り、公式リツイート、DM送信、DM表示、フォロー、あたり。

現時点で諦めたこと

1.Tweet投稿時の文字数カウントで公式のURL短縮に連動した数を出すこと

Twitterが公開しているtwitter-text-jsを使用して文字列解析してみたけど、エラーが返ってきた為。
具体的にはURL単独の文字列を渡すと大丈夫だけど、それにちょっと文字たしただけで駄目でした。
GASで使ってると噂のRhino正規表現まわりで、ぬるぽってるような感じ。
動くようにtwitter-text-jsに手を入れて直したとしても、GASで使ってるJSエンジンのバージョンが変わったりすると、また挙動が変わる可能性が高いので、twitter-text-jsが正常に動くようになるまで保留にしました。
あと、それ以前にRhinoのバージョンもどれが使われているのかわからないので、そもそもどのバージョンか挙動を調べるなどして、確認する所からはじめなきゃいけないので、面倒です。

2.statuses/update_with_mediaを使った画像投稿

GASのUi ServiceにFileUploadクラスってあって、これを使うとinput type='file'が実現出来るんですけど、残念ながらWebアプリケーションとして公開しないと使えない機能みたいで。スプレッドシートでどれぐらい出来るかということで、実装しているので見送ってみました。
他の手段としては、予め画像ファイルをGoogle Driveにアップしておいて、APIで一覧取得して、一覧から選んだ画像ファイルをアップロードするという手もあるのですが、Google Driveの規約が嫌で、Google Driveを使ってないので、これも却下しました。

*1:範囲選択している場合、選択範囲内の一番上、一番左のセルが挿入されます