Posts Tagged ‘blog’
GreasemonkeyからXMLRPCプロトコルでブログに投稿する
XML-RPCを使ってWordpressやMovable Typeなどのブログに投稿するGreasemonkeyの書き方みたいなものです。
XMLRPCに対応したブログにどういうものがあるかは下のサイトによくまとまってます。(ちょっと古いですが)
- BlogWrite – Atom API, XML-RPC
- http://www.witha.jp/BlogWrite/bloglist.html
WordPressでしかテストしてませんがXMLRPCに対応してるブログなら動作すると思います。
今回は投稿機構みたいなものを書いただけなので、このスクリプトだけではあんまり意味はないと思います。
// ==UserScript==
// @name XMLRPC poster
// @namespace http://efcl.info/
// @include http://*
// ==/UserScript==
/* 投稿先のメタ情報 */
var metaBlog = {
"endPoint" : "ブログのエンドポイントURL",
"blogid" : "ブログのログインID",
"username" : "投稿者名", //空だとblogidを使用
"password" : "パスワード"
}
var XMLRPC = (function() { this.initialize.apply(this, arguments); });
XMLRPC.prototype = {
/*
* @arg
{
"endPoint": "endPoint",
"blogid" : "blogid",
"username" : "username",//空だとblogidを使用
"password" : "password"
}
*/
initialize : function(arg) { //引数は{}オブジェクト
this.endPoint = arg.endPoint;
this.blogid = arg.blogid;
this.username = (arg.username) ? arg.username : arg.blogid;
this.password = arg.password;
},
/* *
* @title 記事タイトル
* @desc 記事内容
* @tags タグ(カンマ区切り)
* @callback 更新成功時のコールバック関数
*/
post : function (title, desc, tags, callback){
var postURI = this.endPoint;
this.tags = (tags.length == 0) ? "" : tags.join(",");
var XMLbody = '<?xml version="1.0"?>\n';
XMLbody += this.template(title, desc , this.tags);
console.info(XMLbody);
GM_xmlhttpRequest({
method : "POST",
headers : {
'Content-type' : 'text/xml'
},
url : postURI,
data : this.template(title, desc , tags),
onload : callback,
})
},
template : function (title, desc , tags){
var repuest = <methodCall>
<methodName>metaWeblog.newPost</methodName>
<params>
<param>
<value>
<string>{this.blogid}</string>
</value>
</param>
<param>
<value>
<string>{this.username}</string>
</value>
</param>
<param>
<value>
<string>{this.password}</string>
</value>
</param>
<param>
<value>
<struct>
<member>
<name>title</name>
<value>
<string>{title}</string>
</value>
</member>
<member>
<name>description</name>
<value>
<string>{desc}</string>
</value>
</member>
<member>
<name>mt_keywords</name>
<value>
<string>{tags}</string>
</value>
</member>
<member>
<name>mt_allow_comments</name>
<value>
<boolean>1</boolean>
</value>
</member>
</struct>
</value>
</param>
<param>
<value>
<boolean>1</boolean>
</value>
</param>
</params>
</methodCall>;
return repuest.toString();
}
}
/* init メタ情報を使って投稿先決める*/
var t = new XMLRPC(metaBlog);
t.post(
"title",
"description",
["tag1","tag2"],
function(res){//callback
console.log(res);
}
);
ブログのエンドポイントURLは各ブログによってまちまちですが、Wordpressだとhttp://WordPressトップ/xmlrpc.php
になります。
E4Xを使ってポストするXMLを作成していますが、先頭に<?xml version=”1.0″?>を入れるとなぜかエラーになったので、後で結合するようにしました。
後、XMLRPCを使ってWordpressにタグを指定できるのかを検索した時、下のようにできないというのが出てきましたが、mt_keywordsにタグを指定できます。
なので下の情報は古いか間違っています。
WordPressでXML-RPCを使った投稿で、記事にタグの指定はできるのでしょうか。できるようでしたらやり方を書いたページを教えてください。.. – 人力検索はてな
WordPressでは,で区切る事でタグを複数指定できます。
カテゴリーは面倒だったので放置してます(誰か…)
記載したソースは自由に使用してください。
gist: 224968 – GitHub
参考
- 肉少なめ | Item – Greasemonkeyでブログを更新
- http://niku.suku.name/item/591
- MovableType で使える XML-RPC API
- http://www.na.rim.or.jp/~tsupo/program/blogTool/mt_xmlRpc.html#w01
- XML-RPC経由の投稿 でタグを登録したい « Selflow WordPress
- http://www.selflow.com/?p=6
追記 完全に自分用になってますがこれを使ったものを作ってみた。
- NicoMylist poster with XML-RPC for Greasemonkey
- http://userscripts.org/scripts/show/64569
ニコニコのマイリストからWordpressへポストするGreasemonkey。
上記では実現できてなかったカテゴリーの指定もできるようになりました。
WordPressのcategoriesは複数なので、XML-RPCからポストする場合もArrayで要素を作らないといけなかったようです。
XML部分だけを取り出したもの→gist: 398599 – GitHub
- MetaWeblogAPI metaWeblog.newPost メソッド
- http://msdn.microsoft.com/ja-jp/library/aa905673.aspx
- juust ~ php oddities » metaWeblog.newPost posting to WordPress from Word
- http://www.juust.org/index.php/metaweblog-newpost-posting-to-wordpress-from-word/2009/10/
「RefControl」でリファラを偽装しておくべきサイト
RefControlというアドオンを使う事でURL毎に、リファラを阻止や偽装することができます。
偽装までしなくても阻止すれば問題ないサイトも多いです。
このアドオンを使ってリファラを阻止、偽装しておくべきサイトのメモ
URLのリストはインポートできるので、インポートするのが一番楽です。

- refcontrol.txt をインポート
RSSリーダから画像を表示するためにリファラを偽装、阻止するサイト
- blogs.yahoo.co.jp
- fc2.com
- image.itmedia.co.jp
- plusd.itmedia.co.jp
AmazonはGoogleからのリファラを見て、商品説明の上部に検索結果を表示するようになったためリファラを偽装しています。
- www.amazon.co.jp
WordPress 移転と使用プラグインのまとめ
サーバ移転してプラグインやテーマも切り替えたのでメモ。
サーバ移転の参考
- [WP]WordPressのサーバー&ドメイン移転メモ | emuxx blog
- 基本的なやり方が書いてある。
301リダイレクトの方法 - WordPressのサーバー&ドメイン移転 | WordPress | 『Weblogy』
WordPressで使ってるプラグイン
- WordPressの自動バックアップをGmailで取る | VIVABlog
- Gmailにgzipで圧縮したデータベースをバックアップする。
- WordPress › 404 Notifier « WordPress Plugins
- 404が発生したページをRSSまたはメールで知らせてくれる。
移転したときなどの調査が楽になる。 - 関連エントリーの自動作成プラグイン『YARPP』 | WordPress | 『Weblogy』
- 記事の本文等を解析して、自動的に関連記事をグルーピングするプラグイン。日本語に対応してる。
閾値は3にして使用してる。
関連記事リストを作成するプラグインのまとめなども書いてあるので読んでおくべき。 - Yuriko.Net » WP-PageNavi を使わずにナビゲーション表示
- どちらにしてもテーマをいじらないといけないのでこっちの方が楽だった。
- Maintenance Mode Plugin — Software Guide
- 管理者だけにページを表示するメンテナンスモードをつける。
日本語化ファイル - guff : Post Updated
- 投稿の更新日時を表示するプラグイン。
自分的には必須な気がする。デフォルトで用意されてそうな気もするけど。 - WordPress › PS Disable Auto Formatting « WordPress Plugins
- 自動整形を停止するプラグイン。
記事やコメントなど適応する範囲を指定できる。
過去の記事への適応も考慮されている。
自動整形は記事中にソースコードを書いたりする時邪魔になったり、floatをclearするタグが消えたりしてたから入れてた。
多分これを入れるとScribeFireとかからの投稿でおかしくなるかも。 - 自動整形機能のイライラを軽減するGoogle Syntax Highlighterプラグイン | とりさんのソフト屋さん
- ソースコードをpreタグに入れてビジュアルとHTMLモードを往復を可能にする。
これがあれば自動整形があってもソースが書ける。 - [WP:Plugin] 被ブックマーク数表示+ランキング生成プラグイン | AOINA.COM
- 国内のSBMに対応してる&記事の被ブックマーク数をカスタムフィールドに保存できる。
人気記事をランキングできるので重宝してる。wp-sbm_popular_entry - 記事下に注釈を表示するプラグイン「WP-Footnotes」 » FORGET
- 特定のフォーマットで書くことではてなダイアリーみたいな注釈表記ができる。
((の前に半角スペースが必要 - ページトラックバックプラグイン | ABCP-weblog
- ページにトラックバックを送信する機能をつける.
何でデフォルトでないのかが不思議。 ((WordPress2.8以上で動作)) - WordPress › Enhanced Recent Posts « WordPress Plugins
- 新着記事ウィジェットの上位互換です。
更新された記事や含むカテゴリーなども設定できる。 - WordPress Plugins/JSeries » Feed Control 日本語版
- RSSに更新された記事を含められる。
ただしATOMは対応してない。対応してるプラグインあったら教えて欲しいです。
はてなダイアリーへのポスト機構を追加するGreasemonkeyスクリプト
元ネタ
- Greasemonkeyに、はてブポスト機構を追加するGreasemonkeyスクリプト
- http://d.hatena.ne.jp/nastack/20080610/1213100873
はてなダイアリー版が有れば結構便利そうなので、作成してみた。
単体では特に意味はないGreasemonkeyなので、他のGreasemonkeyから呼び出して使用します。
@includeの初期値が*となってしますが、使うところに限定する方がいいかも。
使い方ははてブ版とほとんど同じで、上のをインストールしてなるべく上の方におきます。
Altキーを使って移動させる。

ポスト機構の使い方
if(!window.Hateda)return; //ポスト機構ができていなかったら終了する var atom = new window.Hateda( "userID", //ID "password" //パスワード ).include(this);
IDとパスワードはどちらも文字データで入れてください。
var userID = "userID"//ID var passWD = "password" //パスワード var atom = new window.Hateda( userID, //ID passWD //パスワード ).include(this);
という感じでも大丈夫です。
上でユーザーの情報をポスト機構に割り当ててから、実際にポストさせます。
atom.post(
["test", "tags"], //タグ 配列データ
"titlename", //title
"comment", //コメント
function (){ //ポストが完了時実行される
console.log("post!")
}
)
ポスト機構はかなり手抜きで日付は設定させてないので、常に最新の位置にポストしています。
ブログ記事に関連性のある画像を挿入できる「Zemanta」
Image via Wikipedia
Zemantaはブログの記事内容に対して、入力された単語からそれにそうような画像をFlickrなどの二次利用ができる画像を検索してくれるアドオンである。(日本語は無視される)
使用するには利用しているブログが対応しているかを確認し、アドオンをインストールする。
アドオンはFirefoxとIEどちらにも対応している。
Zemantは“WordPress” “Blogger” “MovableType” “TypePad” “LiveJournal”などのブログに対応する。
基本的な使用方法はアドオンをインストールした状態で通常の投稿画面に行き、記事を書いていけば画像が自動で取得されていき(手動で選ぶこともできる)、利用したい画像をクリックするだけの簡単さである。
- Zemanta
- http://www.zemanta.com/
各サイトを記事同士の関連性でを繋ぐブログパーツ”シムエントリ”
『シムエントリ』というブログパーツ(Webサービス)の紹介です。
シムエントリはサイトのfeed(RSSのURL)を登録し、javascriptコードをブログのテンプレートに書くことで、
その記事の内容に関連する他サイトの記事へのリンクを表示するブログパーツです。
大きな特徴は内容を解析して、シムエントリに登録してあるブログの中から関連性が高いものを表示するという点です。
記事の関連性のみを参照するため、アクセス数や人気度などに影響されないのがいい点でもあります。
コード自体は2行のjavaascriptなので大抵のブログで取り入れることができると思います。
詳しいやり方は【シムエントリ】ブログパーツの貼り付け方を参照。
という感じでテスト記事を書いてみた。
下の方に関連するブログの記事が表示されるそうです。
更新頻度は
情報更新頻度 現状のシステムでは、6時間~1日に1回、データを更新します。リアルタイムでは更新されませんのでご注意ください。
とのこと。
シムエントリ
記事をブログパーツで結ぶ


