moodle android

moodle android

di ricky farris -
Numero di risposte: 13

salve a tutti!!!sono nuovo di moodle!!!vi espongo il mio problema!

devo fare un'appl android che si interfacci con moodle e vorrei fare un'appl che esegua il login e l'iscrizione all'esame online...

guardando la documentazione mi pare di aver capito che devo fare un client android che interagisca con moodle tramite webservices...utilizzando la libreria  ksoap2.

il mio dubbio è il seguente: io creo il client android ma il webservices per fare il login e l'isrizione deve essere presente in moodle?? devo creare, se non esistesse il web services in moodle??

scusate se ho detto una marea di stupidità ma sto scoprendo ora il mondo moodle e android e ho ancora le idee abbastanza confuse!!

ringrazio chiunque mi possa dare una mano!! thanks!!!

Media dei voti:  -
In riposta a ricky farris

Re: moodle android

di Andrea Bicciolo -
Immagine Core developers Immagine Plugin developers Immagine Translators

Se la tua app deve interagire via web service, i web service e le relative funzioni devono essere attivi lato Moodle.  Forse ti può anche essere utile dare uno sguardo ai piani sulle app ufficiali: http://docs.moodle.org/dev/Mobile_app

In riposta a Andrea Bicciolo

Re: moodle android

di ricky farris -

si la mia app interagisce via web service

quindi se per esempio io devo effettuare un login a moodle devo fare una classe tipo :

 

package com.android.KSOAP;
import org.ksoap2.*;
import org.ksoap2.serialization.KvmSerializable;
import org.ksoap2.serialization.Marshal;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.AndroidHttpTransport;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;
import org.ksoap2.transport.AndroidHttpTransport;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class KSOAP extends Activity implements View.OnClickListener
{
Button btn;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = new Button(this);
btn.setOnClickListener(this);
setContentView(btn);

}
@Override
public void onClick(View view)
{
String NAMESPACE = "http://localhost/moodle";
String METHOD_NAME = "login";
String SOAP_ACTION = "http://localhost/moodle/login";
String URL = "http://192.168.1.4/login/login.asmx";
SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);
PropertyInfo pi = new PropertyInfo();
pi.setName("user");
pi.setValue(2);
pi.setName("password");
pi.setValue(2);
Request.addProperty(pi);

 

dove la classe login è il web service fornito da moodle con il metodo login....giusto??
quindi se moodle offre il servizio di login io posso interfacciarmi in questo modo, se non esiste un modulo che offre questo servizio o il servizio di iscrizione devo creare il webservices di moodle in php?

ho installato sul pc php,postgres e apache
ho scaricato moodle 2.0 e l'ho installato da localhost\moodle
adesso vorrei quindi creare il client android che si interfaccia con moodle ed esegua il login e l'iscrizione all'esame....sto procedendo nella giusta direzione??

grazie mille!!sorridente

In riposta a ricky farris

Re: moodle android

di ricky farris -

non c'è nessuno che sappia darmi una mano??

sto procedendo nella giusta direzione??

please!!!!!!!!!!!!1

In riposta a ricky farris

Re: moodle android

di Andrea Bicciolo -
Immagine Core developers Immagine Plugin developers Immagine Translators

Può esserti utile conoscere prima quali funzioni web service sono già disponibili in Moodle e quali saranno disponibili in futuro:

http://docs.moodle.org/dev/Web_services_Roadmap

In Moodle puoi visualizzare la documentazione delle API web serivce con le funzioni disponibili accedendo ad Amministrazione -> Plugin -> Web service -> Documentazione API

In riposta a Andrea Bicciolo

Re: moodle android

di ricky farris -

salve!!ho dato un'occhiata e ho guardato pure la pagina

http://docs.moodle.org/20/en/Web_Services:OK_Tech_Web_Services#Installation

però se vado nella pagina http://yourmoodle/wspp/wsdl_pp2.php

mi da errore 404.... non capisco dipende dalla versione di moodle che ho installato?? esiste qualche tutorial che spiega come accedere ai ws di moodle con android?grazie infinitamente

 

ho visto pure la pagina https://github.com/patrickpollet/moodlews_ksoap2

relativa alla libreria ksoap2...

devo installare nel mio moodle la cartella wspp come spiegato http://docs.moodle.org/20/en/Web_Services:OK_Tech_Web_Services#Installation

e poi per utilizzare la libreria ksoap2 devo installare questo nuovo modulo??

https://github.com/patrickpollet/moodlews_ksoap2

scusate la mia ignoranza...ho le idee confusissime..please!!!purtroppo devo fare questa app x la tesi e non ho molto tempo e purtroppo devo cercare di capire tutto subito e in fretta...ed è la cosa peggiore perchè alla fine non capisco niente....

grazie mille x la disponibilità!!

In riposta a ricky farris

Re: moodle android

di Andrea Bicciolo -
Immagine Core developers Immagine Plugin developers Immagine Translators

Moodle 2 integra nativamente i web service. Per usarli, devi prima attivare in Moodle i web service che ti servono in accordo alle funzioni ed ai protocolli disponibili.

Se hai Moodle 2.x installato, recati in Amministrazione del sito->Plugin->Web service->Generalità, leggi la documentazione ivi presente e segui i passi descritti.

Una volta che i web service saranno attivi, potrai fare le prove con la tua app.

In riposta a Andrea Bicciolo

Re: moodle android

di ricky farris -

ho provato a seguire il tutorial ma quando apro soapUI e provo a fare la request del login ho questo risultato:

 

HTTP/1.0 500 Internal Server Error
Date: Fri, 23 Sep 2011 17:01:28 GMT
Server: Apache/2.2.18 (Win32) PHP/5.2.11
X-Powered-By: PHP/5.2.11
Set-Cookie: MoodleSession=8qv86dhj8pu6sv5t6qa2rfn3q5; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Content-Type: text/html

che cosa sbaglio??inoltre io ho install moodle 2.0 pero non esiste il file misc.php nella cartella admin/settings

help!!!thank you

In riposta a ricky farris

Re: moodle android

di ricky farris -

ho capito che ho dei problemi con php ho la versione 5.2.11 e non ha l'ext java.dll allora mi sono scaricato zend con javabridge ma niente ho spostato la cartella moodle nella root di zend e ho riprovato a far partire soapUI e fare il login utilizzando zend ma niente sempre stesso errore

ho provato ad eseguire il comando da linea di comando ma il risultato è :

 

C:\Program Files\Zend\Apache2\htdocs\moodle\wspp\clients>php ../wsdl2php.php htt
p://localhost:100/moodle/wspp/wsdl_pp.php
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:/php/ext\php_java.d
ll' - The specified procedure could not be found.
 in Unknown on line 0
PHP Fatal error:  Class 'SoapClient' not found in C:\Program Files\Zend\Apache2\
htdocs\moodle\wspp\wsdl2php.php on line 105

helpppppppppppppppppppppppp pleaseeeeeeeeeeee

non ci capisco più niente non so dove possa essere errore

In riposta a ricky farris

Re: moodle android

di ricky farris -

un ulteriore dubbio: utilizzando soapUI provo a fare la request della login come nel tutorial ma mi da come errore ws_invaliduser.....

che username e password devo mettere???????????

In riposta a ricky farris

Re: moodle android

di ricky farris -

salve a tutti ho risolto in parte i problemi.....stavo facendo una miriade di stupidaggini.....adesso ho installato correttamente tutto e riesco a far partire il login tramite soapUI...

adesso sto cercando di fare il client android che si interfaccia al webservice di moodle...ma ho il seguente errore:

org.xmlpull.v1.XmlPullParserException: expected: START_TAG".

il codice è il seguente:

 

package com.log;

import android.app.Activity;
import android.os.Bundle;


import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;


public class log extends Activity {
   
private static final String SOAP_ACTION = "http://192.168.1.3/moodle/wspp/wsdl#login";

private static final String OPERATION_NAME = "login";

private static final String WSDL_TARGET_NAMESPACE = "http://192.168.1.3/moodle/wspp/wsdl";

private static final String SOAP_ADDRESS = "http://192.168.1.3/moodle/wspp/login.asmx";

@Override
public void onCreate(Bundle savedInstanceState)  {
super.onCreate(savedInstanceState);

TextView textView = new TextView(this);

setContentView(textView);

SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE,
OPERATION_NAME);
request.addProperty("username", "admin");
request.addProperty("password", "Riccardo_1980");

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;

envelope.bodyOut=request;

HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS);

try

{

httpTransport.call(SOAP_ACTION, envelope);

Object response = envelope.getResponse();

textView.setText(response.toString());

}



catch (Exception exception)

{

textView.setText(exception.toString());

}


}
}

 

io sono alle prime armi e non capisco che problema possa essere....per favore aiutatemi!!!!!!grazie

In riposta a ricky farris

Re: moodle android

di Andrea Bicciolo -
Immagine Core developers Immagine Plugin developers Immagine Translators

In Moodle è presente un client di test per i web service, lo trovi in Amministrazione del sito->Sviluppo->Test client web service

In riposta a Andrea Bicciolo

Re: moodle android

di ricky farris -

si ho testato i web service presenti ma non compare nulla...ho impostato il livello di debug a NORMALE ma non mi appaiono warning o error...dovrebbe funzionare tutto correttamente...

per il quanto riguarda il mio client sto procedendo correttamente??

una cosa non mi convince, nel codice io setto

private static final String SOAP_ACTION = "http://192.168.1.3/moodle/wspp/wsdl";

private static final String OPERATION_NAME = "login";

private static final String WSDL_TARGET_NAMESPACE = "http://192.168.1.3/moodle/wspp/wsdl";

private static final String SOAP_ADDRESS = "http://192.168.1.3/moodle/wspp/service_pp2.php";

 

ma la cartella wsdl non esiste...e anche la funzione login non si trova....

se utilizzo soapUI invece funziona tutto regolarmente facendo il login...

non vorrei che il client android non riesca a trovare la funzione login...ma credo che il problema sia nel tipo di risposta ottenuta si aspetta html e invece ottiene xml...come posso risolvere il problema??