Nel 2005 si registrava un boom di vendite di un oggetto tecnologico, a forma di coniglietto sempre connesso ad internet chiamato Nabaztag.
Sul tecno coniglio si trovano tantissime informazioni sulla rete, sono state create delle vere e proprie community, diventando in pochissimo tempo un oggetto fashion ma che presenta ancora oggi un bel pò di pecche.
L’intento di questo post è quello di parlare di un suo particolare aspetto cioè le API attraverso le quali possiamo inviare messaggi o fargli eseguire delle coreografie (luci e movimento delle orecchie) o dargli in pasto in stream un mp3.
Gli ingredienti di questo semplice tutorial sono Outlook 2007 e il Framework .Net.
Ma partiamo con ordine. Prima di tutto bisogna recuperare due informazioni importanti cioè il serial number del Nabaztag e il token cioè una serie di cifre con la funzione di essere un identificatore extra.
Queste due informazioni si possono recuperare dalla pagina di preferenze del coniglio:
Lo scopo è quello di poter usare Outlook per inviare un messaggio al coniglio e per far questo ho creato un progetto di tipo Add-in per Outlook 2007 tramite Visual Studio 2008:
Con Office 2007 è stata introdotta una nuova interfaccia utente chiamata Ribbon che ha innescato un notevole cambiamento nella programmazione per Office.
Aggiungo al progetto Add-in un nuovo item di tipo Ribbon:
Per chi vuole approfondire l’argomento Ribbon segnalo questo articolo pubblicato su MSDN Magazine (Febbraio 2007):
Ampliare 2007 Office System con proprie schede e controlli Ribbon
Per semplicità e brevità mostrerò soltanto come sia possibile inviare con queste poche righe di codice un messaggio TTS.
Il primo passo consiste nella creazione di una classe Bunny che presenta una serie di property e un metodo Send che ha la funzione di impacchettare il messaggio da inviare al server.
Inviare un evento al tecno roditore significa effettuare una richiesta al seguente indirizzo:
http://api.nabaztag.com/vl/FR/api.jsp
passando una serie di parametri che potete trovare nella documentazione delle API.
Nell’esempio oltre al serial e al token invio, il messaggio TTS, la lingua e la voce che leggerà il messaggio.
Quest’ultimo viene indicato tramite il parametro voice.
Alcuni esempi di voci che potete selezionare:
UK - Leonard | UK - Mister muggles | UK - Penelope |
UK - Shirley | US-Billye | FR - Archibald |
1: using System;
2: using System.Collections.Generic;
3: using System.Configuration;
4: using System.Linq;
5: using System.Text;
6: using System.Net;
7:
8: namespace LookNabaztag
9: {
10: public class Bunny
11: {
12: private string url = "http://api.nabaztag.com/vl/FR/api.jsp?";
13:
14: private string tts;
15: public string TTS
16: {
17: get
18: {
19: StringBuilder sbTTS = new StringBuilder();
20: if (tts..Trim().Length > 0)
21: sbTTS.Append("&tts=" + tts.Trim().Replace(" ", "+"));
22: if (voice..Trim().Length > 0)
23: sbTTS.Append("&voice=" + voice.Trim());
24: return sbTTS.ToString();
25: }
26: set
27: {
28: tts = value;
29: }
30: }
31:
32: private string voice;
33: public string Voice
34: {
35: get
36: {
37: return voice;
38: }
39: set
40: {
41: voice = value;
42: }
43: }
44:
45: public void SendMessage()
46: {
47: WebRequest request;
48: try
49: {
50: StringBuilder sbUrl = new StringBuilder();
51: sbUrl.Append(url);
52: sbUrl.Append("sn=");
53: //Recupero dall'app.config il seriale
54: sbUrl.Append(ConfigurationSettings.AppSettings["serial"]);
55: sbUrl.Append("&token=");
56: //Recupero dall'app.config il token
57: sbUrl.Append(ConfigurationSettings.AppSettings["token"]);
58: sbUrl.Append(TTS);
59: request = WebRequest.Create(sbUrl.ToString());
60: WebResponse response = request.GetResponse();
61: }
62: catch (Exception exc)
63: {
64: string error = exc.Message;
65: }
66: }
67: }
68: }
Adesso ci possiamo concentrare sul Ribbon:
Ho evidenziato nell’immagine due aspetti importanti della configurazione del Ribbon:
1) il nome dell’etichetta dell’add-in,
2) la tipologia.
In questo caso le tipologie che ho indicato tramite il property RibbonType sono due: Microsoft.Outlook.Mail.Compose, Microsoft.Outlook.Mail.Read indicando che solo al momento di lettura o composizione del messaggio di posta elettronica l’add-in sarà visibile.
Nel Group1 ho inserito un semplice controllo Button assegnando un’immagine per dargli un aspetto più simpatico.
Sull’evento click del Button vado a recuperare il corpo dell’email tramite il property Body per poi instanziare la classe Bunny vista in precedenza:
1: using Outlook = Microsoft.Office.Interop.Outlook;
2: .....
3: //Recupero testo email
4: Outlook.MailItem mail =
5: (Outlook.MailItem)Globals.ThisAddIn.Application.Inspectors[1].CurrentItem;
6: if (mail != null)
7: {
8: Bunny bunny = new Bunny();
9: bunny.TTS = mail.Body;
10: bunny.Voice = "UK-Shirley";
11: bunny.SendMessage();
12: }
Non ci rimane che osservare il risultato finale:
Se non sono presenti i soliti disservizi dei server Violet allora cliccando il tasto Send verrà inviato al coniglio un messaggio contenente il corpo dell’email.
0 commenti:
Post a Comment