DrupalでXML-RPCを使用します。 クイックスタート

この記事では、この素晴らしいテクノロジーを同様に素晴らしいDrupalシステムで使用する方法を説明します。 例として、jabberクライアントからDrupalを実行しているサイトにメッセージを送信できるシステムを作成してみましょう。



時間を節約するために、次のツールを適用します。





Drupal



Drupalをインストールします。 インストール後、ブログモジュールをオンにします。 後続の投稿は、次のようにユーザーのブログに投稿されます。 人がロスターにボットを追加し、メッセージをボットに送信します。 ボットは次のように見えます:そのようなユーザー(同じメールアドレスを持つ)はいますか? 存在する場合、このユーザーに代わってメッセージを追加します。 存在しない場合は、新しいユーザーを登録し、ユーザーに代わってメッセージを追加します。

Drupalは drupal.orgに 住んでい ます



サービス



モジュールページでは、執筆時点で、開発スナップショットを使用することをお勧めします。 インストールします。 インストール後、サービスに関連するすべてが含まれます。 モジュールにはさまざまな認証機能があります。 方法の選択は好みに任せますが、この例ではユーザー名とパスワードに基づいた承認を使用していることに注意してください。

モジュールはここにあります drupal.org/project/Services



ジャバーボット



このアイテムに関しては、少なくともすべての質問があります。 例からボットを取り上げます。 コンソールボット(既に2つあります)を使用して、補助クラスを含むいくつかの行を追加します。



プロジェクトはGoogleコードにぴったりと配置されており、見つけることができます

このリンク: code.google.com/p/xmpphp

承認にjidを使用して、ボットをダウンロード、展開、起動します。



ダンスを始めましょう



Drupalの準備ができており、サービスが実行されており、ボットは新しいメッセージを待っています。 今、プログラミングに変わりました。 タスクを少し簡略化するのに役立つ関数をいくつか作成します。

小さなクラスを作成してみましょう。ここではxmlrpcライブラリが必要です。



  1. require_once( "xmlrpc/xmlrpc.inc" );







クラスコンストラクターで、接続を設定します。

  1. 関数 __construct(){
  2. $ this-> send_message( 'system.connect' );
  3. }




それに応じて、送信メッセージを登録しておくといいでしょう。



  1. 関数 send_message($メソッド、$メッセージ=配列()){
  2. $ XMLRPC = 新しい xmlrpc_client(_PATH、_SERV、_PORT);
  3. $ XMLRPC-> return_type = "phpvals" ;
  4. $ msg = new xmlrpcmsg($メソッド、$メッセージ);
  5. $ ret = $ XMLRPC-> send($ msg);
  6. if (!$ ret-> faultCode()){
  7. $ answer = $ ret-> value();
  8. if (isset($ answer [ 'sessid' ])&&!isset(self :: $ session)){
  9. self :: $ session = $ answer [ 'sessid' ];
  10. }
  11. return $ ret-> value();
  12. } else $ ret-> faultString();
  13. }




次に、ノードを追加します。 これを行うには、ユーザー名とメッセージを渡してパラメーターとして送信します。



  1. function node_save($ユーザー、$メッセージ){
  2. $ node = array(
  3. 'title' => '*'
  4. 'body' => $メッセージ、
  5. 'type' => 'blog'
  6. 'プロモーション' => 1
  7. 'uid' => 0、
  8. 「名前」 => 「匿名」
  9. );
  10. $ msg =配列(
  11. php_xmlrpc_encode(self :: $ session)、
  12. php_xmlrpc_encode($ノード)
  13. );
  14. return $ this-> send_message( 'node.save' 、$ msg);
  15. }




それは、一般的に、行われる必要があるすべてでした。 おそらく、観測ハブブラウザーは、$ユーザーパラメーターがまったく関与していないことに気付くでしょう。 ユーザーとの仕事は読者の良心に任せることにしました。 しかし、誰かが自分のブログに似たものをすばやく固定したい場合は、クラス全体が次の場所にあります: github.com/mcnet/drupal.xmlrpc.class



頑張って



脅威クラスを洗練せずに使用することはお勧めしません。 現時点では、すべてのコードは事実発見の例として提示されています。



All Articles