Manuel développeur v1.3.0, v1.4.0

Création d'un nouveau connecteur SMS (broker)

Mais vous pouvez également écrire votre propre implémentation de broker pour l'envoi de SMS. Pour cela, vous devrez déclarer un nouveau point d'extension dans le fichier plugin.xml d'un plugin Ametys. Au besoin, vous serez donc amené à créer un nouveau plugin, suivez alors les instructions de la page Architecture d'un plugin Ametys.

Etape 1: Dans un fichier plugin.xml, commencez par déclarer votre point d'extension et les éventuels paramètres de configuration nécessaires à l'envoi de SMS, comme dans l'exemple ci-dessous:

<feature name="com.mycompany.cms.sms.broker.mybroker">
        <config>
            <param id="com.mycompany.cms.sms.broker.user" type="string">
                <label i18n="false">Identifiant</label>
                <description i18n="true">Identifiant</description>
                <validation>
                    <mandatory/>
                </validation>
                <category i18n="true">plugin.sms:PLUGINS_SMS_SUBSCRIPTION_SERVICE_BROKER_CATEGORY</category>
                <group i18n="true">plugin.sms:PLUGINS_SMS_SUBSCRIPTION_SERVICE_SERVICE_CONNECTION_GROUP</group>
                <order>1</order>
            </param>
            <param id="com.mycompany.cms.sms.broker.password" type="password">
                <label i18n="false">Mot de passe</label>
                <description i18n="false">Mot de passe</description>
                <validation>
                    <mandatory/>
                </validation>
                <category i18n="true">plugin.sms:PLUGINS_SMS_SUBSCRIPTION_SERVICE_BROKER_CATEGORY</category>
                <group i18n="true">plugin.sms:PLUGINS_SMS_SUBSCRIPTION_SERVICE_SERVICE_CONNECTION_GROUP</group>
                <order>2</order>
            </param>
        </config>
        <extensions>
            <extension point="org.ametys.plugins.sms.broker.Broker"
                       id="com.mycompany.cms.sms.broker.MyBroker"
                       class="com.mycompany.cms.sms.broker.MyBroker"
                       logger="com.mycompany.cms.sms.broker.MyBroker">
            </extension>
        </extensions>
</feature>

Etape 2: Puis écrire la classe com.mycompany.cms.sms.broker.MyBroker :

public class MyBroker extends LoggerBroker 
{
	@Override
    public void send(Set<String> phoneNumbersList, String message, String listId) throws Exception
    {   
		super.send(phoneNumbersList, message, listId);
		// Do it: send SMS to all the phones in the list
	}

	@Override
    public String getPhoneNumberFromStopRequest() throws Exception
    {
		// Do it ...
	}
}

La méthode send est responsable de l'envoi de mail. Faites ici par exemple appel au web service de votre fournisseur pour l'envoi de SMS.

La méthode getPhoneNumberFromStopRequest a pour charge d'extraire le numéro de téléphone souhaitant se désabonner du service depuis la requête HTTP envoyé par le fournisseur (broker). Par exemple, pour Etoile Diese, le numéro est contenu dans le paramètre de requête "num" : http://<monsite.com>/_plugins/sms/stop-sms?num=336xxxxxxxx&txt=STOP

 

Etape 3: Enfin, sélectionnez votre broker dans le fichier WEB-INF/param/runtime.xml

<org.ametys.plugins.sms.broker.Broker>com.mycompany.cms.sms.broker.MyBroker</org.ametys.plugins.sms.broker.Broker>

Etape 4: Redémarrez le serveur.