Share via


Создаем Silverlight-приложение для сети Мой Мир@Mail.Ru

image Как известно, наиболее популярные социальные сети в мире позволяют писать под себя специальные приложения. Одним из ярких примеров является Facebook, у которых есть своя разметка, доступ к данным и так далее. Мне было интересно написать сетевое прилоложение на Silverlight, и для Facebook для этого специальные проекты – например, Facebook Toolkit и Facebook.NET.

Среди российских сетей приложения позволяют писать ВКонтакте и Мой Мир, правда первый требует использования только Flash и все. Мой Мир же более дружественный – поддерживает обычный HTML, а значит и Silverlight. Собственно с ним я и решил экспериментировать.

На самом деле все просто – после регистрации в сервисе находим в меню “Мои приложения”, нажимаем на “Разработку приложений” и узнаем, как все это можно делать. Мой Мир поддерживает OpenSocial, так что мы можем программно получать информацию о нас самих, наших друзьях в сети и так далее.

При создании нового приложения нужно указать его имя, описание, выбрать картинку. После этого можно переходить к коду. В случае использования Silverlight код представляет собой просто объект <object>, который ссылается на соотествующий XAP-файл приложения в сети.

В качестве эксперимента я вставлял видео с Channel9 (код показывается по кнопке embed), твиттер-гаджет Silverster и gamertag для приставки XBox – XBox Friends Watch. Пример вставки двух последних можно найти на главной странице моего блога.

Я не стал создавать специальное Silverlight-приложение для работы с OpenSocial – хотя было бы интересно сделать визуализатор социальных связей или что-то в таком духе. Для проверки работы я просто над Silverlight-объектом в HTML вставляю текущее имя пользователя через вызов соответствующего метода.

Вот как выглядит код приложения для твиттера (не забудьте указать свои данные):

    1: <?xml version="1.0" encoding="windows-1251" ?>
    2: <Module>
    3:   <ModulePrefs title="test - Twitter" description="Отображает свой твиттер через гаджет Silverster" 
    4: height="451" thumbnail="https://content.foto.mail.ru/mail/mixen/_myapps/i-7.jpg"
    5: author="YourName" author_email="YourMail@mail.ru">
    6:     <Require feature="opensocial-0.7" />
    7:   </ModulePrefs>
    8: <Content type="html" view="profile"><![CDATA[
    9: <html>
   10:   <head>
   11:     <meta http-equiv=content-type content="text/html; charset=windows-1251">
   12:  
   13:   </head>
   14:   <body>
   15:  
   16:  
   17: <b><div id="myname" style="font-family: Arial, Helvetica, sans-serif;
   18: "></div></b>
   19: <object data="data:application/x-silverlight," 
   20:         type="application/x-silverlight-2" width="100%" height="100%"> 
   21:   <param name="source" value="https://www.silverlightshow.net/twitter/ClientBin/Silvester.xap"/> 
   22:   <param name="enableHtmlAccess" value="true" />
   23:   <param name="onerror" value="onSilverlightError" /> 
   24:   <param name="background" value="white" /> 
   25:   <param name="initParams" value="twitterUser=mixen" /> 
   26:   <a href="https://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"> 
   27:    <img src="https://go.microsoft.com/fwlink/?LinkId=108181"  alt="Get Microsoft Silverlight" style="border-style: none"/> 
   28:   </a> 
   29: </object> 
   30:  
   31: <script type="text/javascript">
   32: var req = opensocial.newDataRequest();
   33: req.add(req.newFetchPersonRequest('VIEWER'), 'viewer');
   34: req.send(load); 
   35:   
   36: function load(dataResponse)
   37: {
   38: var viewer = dataResponse.get("viewer").getData();
   39: document.getElementById('myname').innerHTML = viewer.getDisplayName();
   40: }
   41:  
   42: </script> 
   43:   </body>
   44: </html>
   45: ]]></Content>
   46:  
   47: </Module>

Может кто сделает какое-то действительно интересное социальное приложение, которое можно будет опубликовать в каталоге и сделать популярным среди пользователей? Все оказалось действительно просто.