- 2009-08-13 (木) 14:46
- MovableType


- MediaManager for Amazon
Amazonの商品をアイテムとして取り扱う、Media Manager - majordojoの、Amazonプラグインでエラーが発生するケースがあるのを以前書きました。
「MediaManager Still Beta! - WolaWola」
どうも日本語が入る場合に起きてるっぽいという点までは、予想していたんですが、MT4.3になってエラー表示が変わり、それを見た瞬間に原因に思い当たりました。

つまりURLにはアイテム名が含まれるのだが、日本語が入る場合にはエスケープ処理されるせいで、設定された最大文字数を超えてしまうという事みたいです。
「mt_asset」内の「asset_url」は255バイトとなっています。
試しに一時的に「asset_url」を511バイトとかしてみたら、日本語名の商品をうまくアイテム登録できました。
最初の時点で気付けよだよな。
通常はこの状態で問題は発生しない様ですが、Upgraderが動作する時(MTのバージョンアップやテーブル操作を行うプラグインのインストール時)に、整合性が取れずにエラーになります。なので今は元に戻しています。
その場合255バイトを超えたデータが存在するとまずいので、日本語名アイテムのURLは、bit.lyを使い短縮したものを保存しました。
おそらくアマゾンから受け取ったURLを、そのままDBに保存するのではなく、一度短縮URLに変更したのち保存するように修正すれば、日本語を始めとした2Byteのアイテムを扱えるようになるんだと思います。
修正しようと思ったけど、MediaManagerはモジュールが複雑で、どこか探し出せずに断念。
そのうち思い出して再挑戦するかも知れません。
そういや、「AmazonのリクエストにHash含む様に変えないと、処理されなくなるよ。」ってのが今日からだっけ。
もちろんそんなコード含まれてないよな。コレ![]()
- Newer >: 今月のいらんことしぃ・と、どこかのマネしてみる
- < Older: QotD:便利だなあ
ping a Trackback
- TrackBack URL for this entry.(1)




スクリプトの読み込みが完了していません。
メールフォーム(Javascriptを使用していません)や、
Twitter経由のCommentでもReplyいたします。ただし返信はブログのコメントとして行う事もあります。