wp-mixipublisher:テスト
2008年1月24日 (木曜日) - 20:01:31 by decama
この記事がポストされれば問題ないはず。
↓
ならば修正もされるはず。
↓
どちらもOK。
久しぶりにここを更新するようになって、気がついたらmixiへの書き込みが出来なくなってた。どうやらmixi側の修正にプラグインが対応できてかったのが問題みたいだったけど、その修正対応版でもなぜか動かない。
ソースを追っかけてみて、post_idを直接指定してプラグインファイルを実行させれば書き込めることは確認取れたので(前3件の記事をmixiに投稿してみた)、要はpublishToMixiに記事IDを渡してやればいいはず。
saveHandler, publishHandler からの executePublishToMixi が publishToMixi を呼び出してるのかと思ったらそうじゃなかった。
どうやら、executePublishToMixi でチェックさせた後で、 mixipublisher_isEnableSelfExecute から publishToMixiを呼んでる。
ところが、現行のWordPress(2.3.2)はpost_idをgetで投げてないから、 ここでコケる。
post_idをpostedに修正したら動くかな?と思ったけど、新規投稿はいけるけど、投稿済み記事の更新がダメだった。
なので、 executePublishToMixi から直接 publishToMixi を呼び出すように修正。
if(in_array($postId, $this->_publishedId)) {
return false; //falseを返すように修正
}
$settingVO = $this->getWpSetting();
if(!$settingVO->getParam('user_id')) {
return false; //falseを返すように修正
}
$post = get_post($postId);
// 公開しない場合は終了
if($post->post_status != 'publish') {
return false; //falseを返すように修正
}
// 1.0.0 RC2: XML-RPCリクエストの場合ディフォルト設定を優先する
if(defined('XMLRPC_REQUEST') && XMLRPC_REQUEST) {
// ディフォルト設定が有効でなければ終了
if($settingVO->getParam('default') != 1) {
return false; //falseを返すように修正
}
// すでにある投稿で、Mixiに投稿していなければ終了
if(!$post->mixi_diary_id && $isModify) {
return false; //falseを返すように修正
}
}else{
if($_POST['publish_mixi'] != 1) {
return false; //falseを返すように修正
}
}
// 1.0.0 RC2: リクエストに利用するクッキーを既存のものからではなく、新しく作成する
$user = wp_get_current_user();
$cookies = USER_COOKIE.'='.urlencode($user->user_login).'; ';
$cookies.= PASS_COOKIE.'='.md5($user->user_pass);
$relative_path = preg_replace('/^'.preg_quote(ABSPATH, '/').'/', '/', __FILE__);
$ping_url = get_settings('siteurl') . $relative_path;
$parts = parse_url($ping_url);
$argyle = @ fsockopen(
$parts['host'],
$_SERVER['SERVER_PORT'],
$errno,
$errstr,
0.01);
if ($argyle) {
fputs($argyle, "GET {$parts['path']}?" .
"post_id=" . $postId .
" HTTP/1.0\r\nHost: {$parts['host']}\r\nCookie: {$cookies}\r\n\r\n");
}
$this->_publishedId[] = $postId;
return $postId;
}
function saveHandler($postId) {
if ($postId = $this->executePublishToMixi($postId, true)) //$postIDが戻された時だけmixi記事を更新
$this->publishToMixi($postId);
}
function publishHandler($postId) {
if ($postId = $this->executePublishToMixi($postId)) //$postIDが戻された時だけmixiに記事を投稿
$this->publishToMixi($postId);
}
これで多分大丈夫だと思う。
wp-mixipublisher:なおりました...
ちと、意欲がわいてきたのでw
Wordpressを2.2.3にしてから効かなくなっていたmixi-publisherを
こちら↓の方のメモを参考にイジってみました。
開発用メモ ? Blog Archive ? wp-mixipublisher:テスト
成.....
[...] で、次にこのファイルをdecamaさんとこにあるように修正して…… これでOKでした。 [...]
[...] 現時点では、オリジナルの1.0.0RC2も、改変版の+cも、WP2.5では動かないので、+cにdecama氏のパッチを当てて動かしている。 [...]
Wp-MixiPublisher プラグインを導入...
WordPressの記事を、mixiの日記として投稿できるプラグインが、yujilogと言うサイトで公開されていましたので、導入させていただきました。
Wp-MixiPublisher 1.0.0 rc1
現在は不具合があるかもしれ...
[...] http://decama.info/wordpress/137 ◆これで終わりだろ。 [...]
[...] Wp-MixiPublisher 1.0.0 RC2というプラグインがあるのを知ったので試していたましたが、うまく投稿できません。mixiのWordPressコミュニティによると、変更版に差し替えて、さらにこの修正を行えばよいらしいですが、、動いていない人も多数います。どうもPHP5だと動き、PHP4だと駄目なようで。確かにここで使っているハッスルサーバーもPHP4。 [...]
[...] 2)もすでに適用されています。 [...]
[...] ちと、意欲がわいてきたのでwWordpressを2.2.3にしてから効かなくなっていたmixi-publisherをこちら↓の方のメモを参考にイジってみました。開発用メモ ? Blog Archive ? wp-mixipublisher:テスト成功!これでまた、自動的にmixiに投稿できるようになった。感謝感謝。 [...]
[...] こちら [...]
[...] 開発用メモ ? Blog Archive ? wp-mixipublisher:テスト [...]
[...] こちら [...]
[...] 開発用メモ ? Blog Archive ? wp-mixipublisher:テスト [...]