XML-RPCを介してブログとLivejournalを接続する

XMLリモートプロシージャコールは実際には非常に単純なプロシージャであり、これによりブログに書き込み、livejournalの記事をコピーできます。 見た目では、おそらく最も簡単な解決策は、ブラウザーによってデータがLJサーバーに転送されるプロセスを作成することです。 別のiframeを作成し、その中にフォームを配置して別のフォームからコンテンツをコピーし、最終的にLJに公開するだけで十分です。 しかし、そもそもそれは見苦しく、2つめはそのように考案できるという事実ではなく、xml-rpcを介してすべてのデータを転送する方がはるかに簡単で便利です。 これを行うには、完成したライブラリをインストールし、関数..を使用します。

function post2livejournal($subject,$event,$time=0) {
require_once('lib/xmlrpc.inc');
$lj_userid='my_livejournal_username';
$lj_passwd='my_secret_password';

if (!$time)$time=time();
$year=date('Y',$time);
$month=date('m',$time);
$day=date('d',$time);
$hour=date('H',$time);
$minute=date('i',$time);

$client=new xmlrpc_client("/interface/xmlrpc", "www.livejournal.com", 80);

$params = new xmlrpcval( array(
'username' => new xmlrpcval($lj_userid,'string'),
'password' => new xmlrpcval($lj_passwd,'string'),
'ver' => new xmlrpcval('1','string'),
'lineendings' => new xmlrpcval('pc','string'),
'event' => new xmlrpcval($event,'string'),
'subject' => new xmlrpcval($subject,'string'),
'year' => new xmlrpcval($year,'int'),
'mon' => new xmlrpcval($month,'int'),
'day' => new xmlrpcval($day,'int'),
'hour' => new xmlrpcval($hour,'int'),
'min' => new xmlrpcval($minute,'int')),'struct'
);

$msg = new xmlrpcmsg('LJ.XMLRPC.postevent');
$msg->addparam($params);
$client->setDebug(0);
$result = $client->send($msg);
}



そして、それは次のようなエラーは表示されません
リクエストのデシリアライゼーション中にアプリケーションが失敗し、ライブラリのエンコーディングを確認しました-utfをisoとして送信しようとしている可能性があります。


...では、なぜhabrahabrにXML-RPCがないのですか?

Source: https://habr.com/ru/post/J12217/


All Articles