Создаем Silverlight-приложение для сети Мой Мир@Mail.Ru
Как известно, наиболее популярные социальные сети в мире позволяют писать под себя специальные приложения. Одним из ярких примеров является 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>
Может кто сделает какое-то действительно интересное социальное приложение, которое можно будет опубликовать в каталоге и сделать популярным среди пользователей? Все оказалось действительно просто.