【メモ】 PostTweetが動いてない件 → 解決しました

10/29追記
TwitterのAPIが変更されたのか、下記のエラーは解消されました。 現在はPostTweetを使って問題なくツイートできるようになっています。
27_02.jpg 今日の朝当たりから、MovableTypeからツイートするプラグイン「PostTweet」が動いていません。 システムログを確認すると、どうやら次のようなエラーを返されている模様。
PostTweet: Twitterへの投稿に失敗しました。(twitterから応答を得られません。(POST on http://api.twitter.com/1/statuses/update.xml failed: 411 Length Required – at /path/to/mt/plugins/PostTweet/posttweet.pl line 572 ) )
「411 Length Required」で調べるとTwitterのdevで似たことを言っている人が見つかりましたが、 411 Length Required for https://api.twitter.com/oauth/request_token | Twitter Developers いやあ、どこを直したら良いのかさっぱり解らん。 要するに「有効なContent-Lenthを送れよ」という指示なのでしょうけれども… PostTweet以外のツールは動いているように見えるし…ていうかPerlで書かれたソース久しぶりに見た。だめじゃん。 とりあえずわかんないしお腹空いたのでこのまま放置。 誰か直して偉い人。

続きを読む

Firefox 16を使用するとMovableTypeでカテゴリーが指定できない件の修正パッチが出ました

ユーザーパッチだけどSixapartのTwitterオフィシャルアカウントが言及してるし信頼できるかと。 パッチはこちらからお使いのバージョンにあったものをダウンロードして下さい。 Patch file for Firefox 16 users | MovableType.org – Home of the MT Community ファイルは2つ。
  • mt-static/
    • js/
      • mt_core_compact.js
      • common/
        • List.js
確かにこれに差し替えるときちんとカテゴリーが指定できるようになりました。 (この記事にカテゴリーが指定されているのが、実験結果と言うことになります) 一件落着。 ありがとうございます。 ちなみにこれの修正ですが、元Mozillaの方より変更点が追記されたようなので、基本的にはMovableTypeで対応と言うことになるかなと思います。どの辺までサポートするかは解りませんけれど。

続きを読む

Firefox 16とMovableType 5の組み合わせでカテゴリーが登録できない(解決済み)

Firefox

有志によるパッチが出ています。詳しくはこちらのエントリを参照して下さい。 Firefox 16を使用するとMovableTypeでカテゴリーが指定できない件の修正パッチが出ました
昨日、Firefoxのバージョンが16.0.1に上がりましたが、その際にJavaScript関連の挙動が変わったらしくて、カテゴリが指定できなくなってしまいました。カテゴリを指定して投稿しても、なにも指定されていない状態でアップされてしまうのね。
firebugでプレビューを見た限りでは、エラーが出てるのは、
  • /mt-static/js/mt_core_compact.js
で、エラー内容は、
Error: Permission denied to access property 'toString'
mt_core_compact.jsは圧縮されてて分かんないけど、「toString()」関連で言うと、この辺の記事が関係あるのかもと思ったり。 Nightly で Function.toString() の挙動が変わった – hogehoge @teramako (全然わかりませんけど。コード眺めただけで1ミリも調べてない)
→ たぶん関係ないという話が。きちんと調べずに書いた憶測なので薄くしておきますです。 僕のMovableTypeのバージョンは5.12ですが、最新の5.2でも同じらしいです。現行のFirefoxで動かないのは事実なので、しばらくはChromeで投稿することになりそう。ああ、面倒。 FirefoxかMovableTypeか、もしくはその両方かを乗り換える時期が来たって事なんでしょうかねえ……

続きを読む

【メモ】 PostTweetのバージョンアップしようとしたら嵌まって、原因はFastCGIだった(MovableType)

全国250人のMovableTypeファンの皆さんこんにちは、MovableTypeプラグインのお時間です。 いや、そうたいそうなお話ではないのですが、エムロジック謹製のMovableType用Twitterプラグインがバージョン1.0.6にアップデートしていました。Movable Type 5.1へ対応したほか、記事が公開された後にツイートされるようにツイートのタイミングを変更されるなどなかなか素敵なアップデートです。

MovableType用PostTweetプラグイン v1.0.6 (エムロジック放課後プロジェクト)

PostTweetプラグインのバージョンアップを行いました。変更点は次の通りです。

  • Movable Type 5.1への対応
  • PublishCharsetをUTF-8以外に設定したMovable Type 4.xでの動作対応
  • ブログ記事/ウェブページ単位で投稿タイミングを保存する機能を追加し、その初期値をプラグイン設定にて設定できるようにした
  • ブログ記事/ウェブページの編集内容に応じてツイートの内容をプレビューする機能を追加した
  • ブログ記事/ウェブページが公開された後にツイートされるようツイートのタイミングを変更した
  • OAuth認証方式の見直し
  • bitly APIのエラーコード取得方法を変更した
jQueryの使用に伴い本バージョンより動作対象となるMovable Typeのバージョンを4.25以降に変更しております。ご注意ください。

続きを読む

月別アーカイブをAutoPagerize/AutoPatchworkに対応させました。

特に深い意味は無くて、自分でこんなこと書いてたのを思い出したので。

サイトのAutopagerizeへの対応。 | mutter

このブログ自体はAutopagerizeには対応してません。 再構築が面倒…ということじゃなくて、なんとなく乗り気じゃないっていうか、そんなので。 一つのエントリに用がある個人ブログの場合別に必要ないんじゃないかなーとね。 あと、フッターにあるプロフィールとかカテゴリメニューとか使えなくなるし。 ニュースサイトとかカタログとか検索エンジンとかDBとかだと便利だけどね。 そういう意味で言うと、個別エントリには付けないつもりだけど、 月毎のアーカイブとかにはそのうち付けるかもしれません。

続きを読む

ブログの更新情報に一言添えてTweetする(PostTweet)

こんな感じでツイートしたいとずっと思っていたのですが、やり方が解らず幾星霜。 31_01.jpg MovableTypeでもエムロジックのプラグイン「PostTweet」と使えば、ちょっとしたカスタマイズで実現できると言うことに今さらながら気付いたので実装してみました。 「PostTweet」のダウンロードはこちらから。 エムロジック放課後プロジェクト: PostTweet アーカイブ インストール・設定にはドキュメントも参照してください。 PostTweetプラグイン

続きを読む

MovableType5(MT5)で画像をアップロードするディレクトリを変更する

「画像の挿入」»「新しい画像をアップロード 」を押して画像をアップロードする場合、デフォルトではこのように表示されます。 25_02_01.jpg これをこのようにしたいというカスタマイズです。 25_02_02.jpg 参考にしたのはこちら。 Movable Type 5のアイテム(画像とか)のデフォルトアップロード先を強引に設定 – 岡山県北でがんばるフリーエンジニアのメモ ただテンプレを直接変更するのはアレなので、alt-tmplディレクトリを利用する。

続きを読む

【メモ】 ウィジェットテンプレートのキャッシュで嵌る

このブログのはてなブックマークまとめエントリは、毎朝、前日のはてなブックマークをまとめてエントリという形で投稿しているのですけど、リニューアルしてバッチ処理を設定してみたらなんだかきちんと投稿されない。具体的に言うと、メニューの「Recent Entries」に、カテゴリが空の状態で投稿されてしまう。 バッチ処理が悪いのか、XML-RPC叩くライブラリが悪いのかと色々やってみたけどわからなくて、最終的には「Recent Entries」テンプレートのキャッシュが更新されていないことが判明。キャッシュ更新のタイミングを「ブログ記事」に設定していたのですけど、どうやら再構築時にウィジェットテンプレートのキャッシュが更新されないみたい。 XML-RPC叩いてカテゴリ付きでエントリを投稿する場合の経過はこんな感じなのですけど、

  1. XML-RPC経由でエントリ内容を投稿
  2. 返ってきたエントリIDを使ってカテゴリを登録
  3. エントリIDを使ってブログ記事を再構築
本来こうなって欲しいところ、
  1. XML-RPC経由でエントリ内容を投稿 ← キャッシュ更新
  2. 返ってきたエントリIDを使ってカテゴリを登録
  3. エントリIDを使ってブログ記事を再構築 ← キャッシュ更新
こうなってしまうという。
  1. XML-RPC経由でエントリ内容を投稿 ← キャッシュ更新
  2. 返ってきたエントリIDを使ってカテゴリを登録
  3. エントリIDを使ってブログ記事を再構築
考えてみれば当然で、再構築というのはブログ記事の内容に変更はないわけだから、キャッシュ更新タイミングである「ブログ記事を作成または更新後」には該当しないのですよね。 そうかー。 というわけで、該当ウィジェットのキャッシュを解除したらば無事、再構築に含まれるようになりました。 良かった良かった。

続きを読む

【メモ】 XML-RPC経由でカスタムフィールドの値を渡す(MT5.1)

検索してみるとこんなことが書いてありました(強調は僕)。

PythonでMovableTypeのXML-RPCインターフェースを叩く « taichino.com

ウェブサービスパスワードを確認したら記事を投稿してみます。ここで注意するべきなのはblog_idが文字列である事と、mt_text_moreで「キー名=値」とするとカスタムフィールドデータを渡せる事です。

「mt_text_more」ってのは「追記」、つまり「エントリの続き」のことです。 そんなところにデータ預けちゃって良いのかよ、ていうかそんなことして「追記」はちゃんと投稿できるのかよ、と思ったのですが改行を挟むことできちんと判別できるようです。 コードイメージとしてはこんな感じ。
$text_more = '追記に挿入する文章';
$custom_field = 'フィールド名=値';
$mt_text_more = $text_more . "\n" . $custom_field;
「フィールド名」はというのはカスタムフィールドの「ベースネーム」というやつです。 複数登録したいときには、改行で区切って追加していってやれば大丈夫。 こんな感じで。
$text_more = '追記に挿入する文章';
$custom_field1 = 'フィールド名1=値';
$custom_field2 = 'フィールド名2=値';
$mt_text_more = $text_more . "\n" . $custom_field1 . "\n" . $custom_field2;
なるほど。 場当たり的な対応だなぁと言う気もするけれど、XML-RPCの仕様を変えるわけにはいかないし、これならラッパーさえ変えずに投げるデータを変えるだけで運用を変更できるから楽って言えば楽。気持ちは悪いけれども。 ともあれ、無事に出来たので良しとする。 ちなみに、相変わらずXML-RPC経由で日時指定投稿というのは出来ないのね。 publishが真偽値だからそれはもう仕方のないことかな… NoPublishMeansDraftを1にして下書きで投稿→別途日時指定という今までのやり方で行くしかないか。 NoPublishMeansDraft | 環境変数リファレンス

続きを読む

【Movable Type】 5.0 → 5.1にアップグレード

movabletype.png

アップデートの流れ

基本的な流れはここを参考にしました。まぁどのバージョンでも大体同じなのですが。 Movable Type 5.0から5.1へアップグレード|Blog|Skyward Design 上書きアップグレードするのではなくて、違うディレクトリにアップデートしてリネーム。 面倒ですがより安全です。 もちろん、データベースのdumpはお忘れなく。 ここのブログではない他の場所で使用しているMTOS(オープンソース版)の方は、 これだけで問題なくアップグレードできました。

アップデート中に起きた問題点と解決方法

次にここのブログの場合。 サーバが色んな意味で一杯一杯なのでいろいろとエラーを出すのですが、これには参りました。
アップグレード中にエラーが発生しました failed to execute statement CREATE INDEX mt_blog_meta_type_vint ON mt_blog_meta (blog_meta_type,blog_meta_vinteger_idx): Duplicate key name ‘mt_blog_meta_type_vint’ at lib/MT/Upgrade.pm line 835.
簡単に言うと「データベースのINDEXがかぶってて新しいINDEX作れないよ」。 INDEXならと思って削除をしてみるのだけどphpMyAdminから削除できないでやんの。 「削除しました」って出るのに削除できてない。 仕方がないので「mt_blog_meta_type_vint」というindexを「mt_blog_meta_type_vint.old」にリネームしたらばちゃんと通るけど、また違う場所で引っかかってやり直し。面倒。なので、もうこのエラー自体無視することに。参考にしたのはこのページ。 くらこしLB::|s|e|r|v|e|r|r|o|o|m|: MT5.1 発進! 続いてUNIQUEキーでも躓いたけどこれもUNIQUEキーをリネームでなんとか。 最終的に、アップグレードが終わって、何も問題なく動いています。 やったー

続きを読む