エディタから直接twitterに投稿する方法メモ


手元の環境でVxEditorからtwitterに直接投稿できるようにしてみたので、その方法を参考までにメモっておきます。
DMonkeyマクロを使っているのでVxEditorやJmEditorぐらいでしか動かないでしょうが、ほかのエディタでもマクロをいじれば簡単に似たようなことは出来るでしょう。

おおまかな手順

  1. コマンドラインからtwitterに投稿できるphpスクリプトを用意。
  2. VxEditorから使えるように、上のスクリプトに文字列を渡すDMonkeyマクロを用意。
  3. エディタのツールに登録して準備完了。後はお好みで。

コマンドラインからtwitterに投稿できるphpスクリプトを用意。

まずはphpから簡単にtwitterAPIを利用できるPEARライブラリServices_Twitterをインストール。
そんで以下のコードを保存。

<?php 
//post_twitter.php
require_once 'Services/Twitter.php';
 
$user = 'twitterのID';
$pass = 'twitterのパスワード';
$st = new Services_Twitter($user, $pass);

array_shift( $argv);
$msg = mb_convert_encoding( implode( ' ', $argv), 'UTF-8', 'SJIS,UTF-8,EUC-JP');
if( preg_match( '/^\s*$/', $msg) === 1) return;
$st->setUpdate( $msg);

$userと$passには自分のIDとパスを入れてください。
たったこれだけのコードですが、このスクリプトに引数を渡すと、それをそのままtwitterに投稿してくれます。

VxEditorから使えるように、上のスクリプトに文字列を渡すDMonkeyマクロを用意。

次はこのコードを保存。

// post_twitter.dms

var e = new Editor();
var msg = prompt( 'twitterに投稿します', e.SelText ? e.SelText : e.GetLineString( e.Row));
if( msg == null || msg.match( /^\s*$/) ) return;

// 前述のphpスクリプトの引数に文字列を渡して起動。
// スクリプトのpathは環境に合わせて設定してください。
var cmd = "php C:/twitter_client/post_twitter.php " + msg;
new ActiveXObject('WScript.Shell').Run( cmd,0);

promptの第二引数はお好みで設定してください。
上のコードでは、選択文字列かキャレットのある行の文字列を自動的に入力するようになっています。

エディタのツールに登録して準備完了。後はお好みで。


あとは利用するだけです。前述のpost_twitter.dmsをエディタのツールに登録して、人それぞれお好みの方法で起動して使ってください。
自分の場合は、わかりやすいようにtwitterアイコンをつけてツールバーに表示するようにしています。