FC2ブログ

WordPressに自動投稿

せっかくなので、WordPressに自動投稿するスクリプトがあったのでやってみました。
以下のような感じです。
ただしこれは文字化けするんですね。


<?php
require_once("XML/RPC.php"); //XML-RPC package
$GLOBALS['XML_RPC_defencoding'] = "UTF-8";
$wp_blogid = "";
$wp_host = "www.example.com";
$wp_xmlrpc_path = "/wordpress/xmlrpc.php";
$wp_user = "user";
$wp_passwd = "pass";
$kiji_mode = 0;
$kiji_title = "WordPress Auto Post Title";
$kiji_honbun = "WordPress Auto Post Contents.<br /><br /><br />";

$bm = new BlogManager();
$bm->post_blog($kiji_mode,$kiji_title,$kiji_honbun);
class BlogManager {
function post_blog($kiji_mode,$kiji_title,$kiji_honbun) {
global $wp_blogid,$wp_xmlrpc_path,$wp_host,$wp_user,$wp_passwd;
echo "XML_RPC_client\n";
$c = new XML_RPC_client( $wp_xmlrpc_path, $wp_host, 80 );
$blogid = new XML_RPC_Value($wp_blogid, 'string');
$username = new XML_RPC_Value($wp_user, 'string');
$passwd = new XML_RPC_Value($wp_passwd, 'string');
$content = new XML_RPC_Value(array(
'title' => new XML_RPC_Value($kiji_title, 'string'),
'description'=> new XML_RPC_Value($kiji_honbun, 'string'),
'dateCreated'=> new XML_RPC_Value(date("Ymd\TH:i:s",time()), 'dateTime.iso8601')
), 'struct');
$publish = new XML_RPC_Value($kiji_mode, 'boolean');
$message = new XML_RPC_Message('metaWeblog.newPost',array($blogid, $username, $passwd, $content, $publish) );
$this->send_message($c,$message);
}
function send_message($c,$message){
echo "send";
$result = $c->send($message);
if( !$result ){
exit('Could not connect to the server.');
}else if( $result ->faultCode() ){
exit('XML-RPC fault ('.$result ->faultCode().'): '
.$result ->faultString());
}
return $result ;
}
}
?>


いろいろ探してみたら、class-IXR.phpというのを使った文字化けしないスクリプトがありました
こんな感じです。



<?php
/*wp-includesからファイルをコピペ*/
require_once("class-IXR.php");

$host = "http://example.com/wordpress";
$base_uri = $host. "/xmlrpc.php";
$encoding = 'UTF-8';
$method = 'metaWeblog.newPost';//wp.newPostは動きませんでした
$title = "自動投稿 タイトル";
$description = "自動投稿 本文";
$user = 'user';
$pass = 'pass';
$params = array(1,
$user,
$pass,
array(
"title" => $title,
"description" => $description,
),
1,
);
$client = new IXR_Client($base_uri);

if (!$client->query($method, $params)) {
echo $client->getErrorCode().":".$client->getErrorMessage()."\n";
exit();
}
?>



これをつかって、なにかやってみようかな。

http://chattera.net/
http://chattera.net/chaberilist.php



スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

chattera.net

Author:chattera.net
フリーでソフト開発の仕事をしています。
自作したこのチャットシステムは、何か世の中に役に立つこともあるかと思いますので、お呼びがかかるとうれしいですね。

連絡先は chatteranet@gmail.com です。

また、ソフト開発関連のお誘いもうけたまわっております。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR