2011-09-15 13 views
0

私はDrupalを使用して自分のAndroidアプリケーション用のWebサービスを作成しています。 私はモジュール、テーマ、有効化のようなDrupalの基本的な理解を持っています。 しかし、この "サービス"モジュールは私が頭に入れないものです。 サービス6.2をダウンロードし、サービスモジュールとノードサービスモジュールを有効にしましたDRUPALとANDROIDを統合することができません

サイトビルディング - >サービス - > node.getにナビゲートすると、ノードIDとフィールドを入力できるフォームが表示されますうまく動作します。

しかし、私はアンドロイドからの応答を取得する方法がわかりません。 xmlRPCサーバーをまだ有効にしていません。 匿名ユーザーがサービスページにアクセスできるようにして、認証やセッションIDを取得する必要はありません。

基本的に私はちょうどノード1のためにeclipse sdkの私のログの猫の応答を見たいと思っています。私はその点から行くように設定されています 。

答えて

2

サービスモジュールでは、リモートプロトコル(xmlrpc、soap、restなど)を使用して、サードパーティのアプリケーションとDrupalを通信できます。

これを使用するには、少なくとも1つのエンドポイントを定義する必要があります。セットアップ名、プロトコル、許可されたリソース(ノード、ユーザー、ファイル、コメントなど)。

たとえば、xmlrpc endpointを定義します。 その後、Androidのxmlrpcクライアントから呼び出すことができます。

XML-RPCは、リモートメソッドのセットを公開し、最も興味深いのは、次のとおりです。

  • user.login - ユーザーでログインすると、それは引数
  • user.logoutとして、ユーザー名とパスワードを取る -
  • ログアウト

ノードCRUD操作:

  • node.retrieve -
  • を取得
  • node.create - 新しいノードを作成
  • node.update - 更新既存のノード
  • node.delete - ノード
  • node.indexを削除 - 同じCRUDメソッドノード

のリストを取得他のDrupalオブジェクト(ファイル、コメント、ユーザ、taxonomy_terms)に存在する場合、 "node"をオブジェクト名に置き換えます。 例: "file.create" - ファイル "file.index"の作成 - ファイルのリストの取得

許可する必要がある場合は、最初に "user.login"を呼び出す必要があります。成功した場合は、 は返されたメソッド構造のsessidとsession_nameの値を格納します。

は、その後のセッションを識別するために、すべての後続の呼び出しにクッキーとして値

session_name+"="+sessid 

を送ります。また、Drupalサービスエンドポイントの設定で「セッション認証」チェックボックスを有効にする必要があります。これがなければ、エンドポイントへのすべての要求は匿名ユーザーとして実行されます。

独自XMLRPCサービスを作成するには、モジュールでhook_xmlrpc定義、およびメソッドのセットを公開する必要があります。

+0

からnode.get呼び出す方法を知りません。あなたの答えにあなたのブログへの署名やリンクを含めないでください。 –

+0

ブログの投稿には、サービスモジュールの設定方法に関する詳細が含まれています。私はここでスクリーンショットや詳細なテキストを送ることはできません。これがリンクを追加した理由です(スパム行為ではありません)。 –

+0

私はあなたのブログ記事を見ました。その情報があれば、それを見つけることは非常に困難でした。 –

0

あなたが探しているものかどうかは分かりませんが、HttpClientを使用してサービスにアクセスできます。詳細については、this答えを参照してください。私はDrupalのエキスパートではないので、これらの "サービス"モジュールを有効にしたのでxmlRPCを有効または無効にする必要があるかどうかはわかりません。ちょっとした研究(here)では、基本的にDrupalでxmlRPCを有効にし、XML-RPCクライアントをAndroidアプリケーションにインポートして使用するという有用な情報を見つけました。

+0

私はので、私が使用する必要があり、そのHTTPClientの方法を考えてはいけません。私は非常にXMLの解析やものに精通していると私はこれのようなwww.myurl.com/api.php?param1=value1¶m2=value2タイプのURLと一緒に遊ぶことができますが、このものは異なります。これは、www.myurl.comのようなURLを呼び出して、別の方法でnode.getのように別々に呼び出して、別々に引数をとるようなものです。このすべてが、単純なURLではありません:(それ以外の人生は簡単 – abhishek

+0

ちょっと私は、このリンクを発見した男http://civicactions.com/blog/2010/may/02/tutorial_code_developing_apps_iphoneipadandroid_using_drupal_base_systemチェックして、コメントしてください – abhishek

+0

node.getてきたWUDされますおそらくURLはmysite.com/node.getのように - 。。それはデータのPOSTを期待するかもしれない – Jack

0

開始するにはいくつかの例については、http://drupal.org/node/783722http://drupal.org/node/790416のサービスマニュアルを参照してください。私はこれらがサービスモジュールをセットアップし、使用する方法についての良い紹介を見つける。

+0

を私は(node.getを参照してくださいので、この方法は、Drupalの枠組みの中で正常に動作している)すべてのサーバモジュールを??有効にする必要がありますか私は実際に欲しいデータを与えています。もし複雑になりたいだけで、サービスモジュールとノードサービスを有効にして、urlConnectionをURL http://mydomain.com/drupal-6.19/admin/buildその後、/サービスやメソッド呼び出しnode.get ??との接続が確立したら、またどのように私は何とか?? – abhishek

+0

はちょっと男uは、このリンクhttp://civicactions.com/blog/2010/may/を確認することができますnode.get方法を引き起こす可能性02/tutorial_code_developin g_apps_iphoneipadandroid_using_drupal_base_system iは類似しており、シンプルな何かをしなければならないが、ここでもURL – abhishek

0

質問が回答されているが、私はAndroidのアプリケーションとのDrupalサイトを統合するための優れたビデオチュートリアルであることが判明何を追加しています。

http://www.youtube.com/watch?v=ezk_21sfEQM