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:範囲選択している場合、選択範囲内の一番上、一番左のセルが挿入されます