FC2ブログへXML_RPC投稿について調べたメモとサンプルコード

PHPAPI

( ! ) Notice: Undefined variable: content in /home/stories/public_html/dstrikes.net/wp-content/themes/cocoon-child-master/tmp/content.php on line 76
Call Stack
#TimeMemoryFunctionLocation
10.0149362048{main}( ).../index.php:0
20.0247364096require( '/home/stories/public_html/dstrikes.net/wp-blog-header.php' ).../index.php:17
35.756838001992require_once( '/home/stories/public_html/dstrikes.net/wp-includes/template-loader.php' ).../wp-blog-header.php:19
45.774638022144include( '/home/stories/public_html/dstrikes.net/wp-content/themes/cocoon-master/single.php' ).../template-loader.php:78
56.430638591344get_template_part( ).../single.php:18
66.430638591832locate_template( ).../general-template.php:168
76.430938591960load_template( ).../template.php:671
86.438538602056require( '/home/stories/public_html/dstrikes.net/wp-content/themes/cocoon-master/tmp/single-contents.php' ).../template.php:724
96.438838602056get_template_part( ).../single-contents.php:19
106.438838602528locate_template( ).../general-template.php:168
116.438938602656load_template( ).../template.php:671
126.440838633640require( '/home/stories/public_html/dstrikes.net/wp-content/themes/cocoon-child-master/tmp/content.php' ).../template.php:724
この記事は 約3 分で読めます。

あんまりこういうの調べる機会は無いんだけど、調べるのに時間が掛かる上にFC2のXML_RPCは仕様書が無い上にはっきりしないのでトライ・アンド・エラーで試しながら調査するしかないのが辛かった。

スポンサーリンク

FC2で使えるXML_RPCメソッド一覧

$methods (array)
0blogger.getUsersBlogs
1blogger.getUserInfo
2blogger.newPost
3blogger.editPost
4blogger.deletePost
5blogger.getRecentPosts
6metaWeblog.newPost
7metaWeblog.editPost
8metaWeblog.getPost
9metaWeblog.getRecentPosts
10metaWeblog.newMediaObject
11metaWeblog.getCategories
12mt.getRecentPostTitles
13mt.getCategoryList
14mt.getPostCategories
15mt.setPostCategories
16mt.supportedMethods
17mt.supportedTextFilters
18mt.getTrackbackPings
19mt.publishPost
20mt.setNextScheduledPost

FC2ブログへXML_RPCで画像投稿

ライブラリはIXRライブラリを使用してます。

$client = new IXR_Client("{$xmlrpc}");
==== 画像投稿スクリプト ==================================================
画像がサーバーに無い場合 またはイメージサイズが取得出来ない場合はエラーでスキップする
$imgInfo = getimagesize('test.jpg');

$type = $imgInfo['mime'];

$bits = new IXR_Base64(file_get_contents('test.jpg'));
$status = $client->query(
	"metaWeblog.newMediaObject",
	1,
	$usr, // ユーザ名
	$pas, // パスワード
	array(
		'name' => 'test.jpg',
		'type' => $type,
		'bits' => $bits,
		'overwrite' => false,
	)
);
$methods=$client->getResponse();
new dBug($methods);

$statusにはBooleanしか帰ってきませんのでIF文を作る時に使えるかと。
$methodsには画像URLとアルバムURLが返ってきますから、これを投稿に挟むと画像付き記事を投稿する事が出来ます。

新規投稿で記事を投稿する場合は上記のメソッド一覧の6番metaWeblog.newPostを使えばOKですね。

コメント

トップへ戻る