人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

xmlrpc.inc ( http://phpxmlrpc.sourceforge.net/ ) から metaWeblog.getPost を使用したいのですが、なにかよいサンプルコードはないでしょうか?
ちなみに当方が以下のようなコードを組むと「Invalid return payload: enable debugging to examine incoming payload (XML error at line 1, check URL)」というエラー($result->faultString()にこのような返り値が入ってしまう)が発生してしまいます。

<?php
include 'lib/xmlrpc.inc';

$server = new xmlrpc_client('/mt4/mt-xmlrpc.cgi',
'(サイトのドメイン)', 80);

$message = new xmlrpcmsg(
"metaWeblog.getPost",
array(
new xmlrpcval("(エントリのID)", 'string'),
new xmlrpcval("(ブログのID)", 'string'),
new xmlrpcval("(ブログのパスワード)", 'string')
)
);

$result = $server->send($message);

print_r($result);

if (!$result) {
print "<p>Could not connect to HTTP server.</p>";
} elseif ($result->faultCode()) {
print "<p>XML-RPC Fault #" . $result->faultCode() . ": " . $result->faultString()."</p>";
} else {
print_r($result->value());
}

?>

●質問者: くじぇ
●カテゴリ:インターネット ウェブ制作
✍キーワード:AT CGI CONNECT HTTP LIB
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● tobeoscontinue
●60ポイント

>XML error at line 1

とあるようにXMLファイルが返っていないように思います。

$server->setDebug(2);
$result = $server->send($message);

として送信した内容と受け取った内容を表示して確かめてみてはどうでしょう。


プログラムの問題というよりもmt4の設定の問題ということはありませんか?

http://d.hatena.ne.jp/tacchini/20080502/1209725544

◎質問者からの返答

tobeoscontinue さん先ほどの質問に引き続きお答えいただきありがとうございます。

カテゴリ一覧の取得をsendするのは成功したので、MTAPIの問題はクリアしていると考えています。

もしかしたら受信するエントリの内容に xmlrpc.inc と相性の悪い物があるのかもしれません。

送信内容等は以下の通りです。

■送信内容

POST /mt4/mt-xmlrpc.cgi HTTP/1.0

User-Agent: XML-RPC for PHP 2.2.1

Host: www.gift-communication.net:80

Accept-Encoding: gzip, deflate

Accept-Charset: UTF-8,ISO-8859-1,US-ASCII

Content-Type: text/xml; charset=UTF-8

Content-Length: 297

<methodCall>

<methodName>metaWeblog.getPost</methodName>

<params>

<param>

<value><string>(エントリID)</string></value>

</param>

<param>

<value><string>(MTのID)</string></value>

</param>

<param>

<value><string>(ブログの正確にはMTAPIパスワード)</string></value>

</param>

</params>

</methodCall>

■受信内容

HTTP/1.1 200 OK

Date: Sat, 05 Jul 2008 03:16:41 GMT

Server: Apache/1.3.41 (Unix) PHP/4.4.8 mod_ssl/2.8.31 OpenSSL/0.9.7l

SOAPServer: SOAP::Lite/Perl/0.52

Content-Length: 4092

Connection: close

Content-Type: text/xml

<methodResponse><params><param><value><struct><member><name>permaLink</name><value><string>(ブログのURL)</string></value></member><member><name>mt_basename</name><value><string>post_2</string></value></member><member><name>userid</name><value><string>1</string></value></member><member><name>mt_allow_pings</name><value><int>1</int></value></member><member><name>mt_tags</name><value><string/></value></member><member><name>mt_excerpt</name><value><string>(エントリの内容)

</string></value></member><member><name>postid</name><value><string>(エントリーID)</string></value></member><member><name>mt_convert_breaks</name><value><string>0</string></value></member><member><name>title</name><value><string>(エントリのタイトル)</string></value></member><member><name>mt_keywords</name><value><string/></value></member><member><name>mt_text_more</name><value><string/></value></member></struct></value></param></params></methodResponse>

--

7月7日追伸:受信するデータに(")ダブルクォーテーションがあったので、除去したところ動作するようになりました。おつきあいいただきありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ