Enviar pesquisa
Carregar
SocialWeb Conference vol.5 OpenSocial Night #2
•
5 gostaram
•
1,424 visualizações
Nobuhiro Nakajima
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 41
Baixar agora
Baixar para ler offline
Recomendados
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方
Hiroshi Oyamada
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
yoshikawa_t
jQuery Mobile 概要
jQuery Mobile 概要
トモロヲ いちがみ
リアルFacebookガジェットを作った(ロングバージョン)
リアルFacebookガジェットを作った(ロングバージョン)
Mariko Goda
jQuery Mobile 1.2 最新情報 & Tips
jQuery Mobile 1.2 最新情報 & Tips
yoshikawa_t
jQuery Mobile 1.3 最新情報
jQuery Mobile 1.3 最新情報
yoshikawa_t
プロになるためのJavaScript入門読書会 レジュメ
プロになるためのJavaScript入門読書会 レジュメ
Norito Agetsuma
後期03
後期03
Takenori Nakagawa
Recomendados
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方
Hiroshi Oyamada
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
yoshikawa_t
jQuery Mobile 概要
jQuery Mobile 概要
トモロヲ いちがみ
リアルFacebookガジェットを作った(ロングバージョン)
リアルFacebookガジェットを作った(ロングバージョン)
Mariko Goda
jQuery Mobile 1.2 最新情報 & Tips
jQuery Mobile 1.2 最新情報 & Tips
yoshikawa_t
jQuery Mobile 1.3 最新情報
jQuery Mobile 1.3 最新情報
yoshikawa_t
プロになるためのJavaScript入門読書会 レジュメ
プロになるためのJavaScript入門読書会 レジュメ
Norito Agetsuma
後期03
後期03
Takenori Nakagawa
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for Design
Miho Nakano
WordPressと外部APIとの連携
WordPressと外部APIとの連携
Hidekazu Ishikawa
第一回Miim勉強会
第一回Miim勉強会
Yuri Kawamoto
jQuery勉強会#2
jQuery勉強会#2
Ryo Maruyama
jQuery超入門編
jQuery超入門編
Yasuhito Yabe
jQuery Mobileの基礎
jQuery Mobileの基礎
Takashi Okamoto
WordPressで提供するWeb API
WordPressで提供するWeb API
Yuko Toriyama
Vue Router + Vuex
Vue Router + Vuex
Kei Yagi
Monaca公式ガイドブック発売記念全国キャラバン
Monaca公式ガイドブック発売記念全国キャラバン
アシアル株式会社
Monaca公式ガイドブック発売記念全国キャラバン
Monaca公式ガイドブック発売記念全国キャラバン
アシアル株式会社
Jetpack Workshop
Jetpack Workshop
Hideaki Miyake
appengine ja night #10 Google AppEngine で作る Google Apps Marketplace 対応サービス
appengine ja night #10 Google AppEngine で作る Google Apps Marketplace 対応サービス
Nobuhiro Nakajima
OSDE と OpenSocial jQuery で作る簡単ソーシャルアプリ (1/3)
OSDE と OpenSocial jQuery で作る簡単ソーシャルアプリ (1/3)
Nobuhiro Nakajima
#MA6 Mashup Camp - Social Platform Day
#MA6 Mashup Camp - Social Platform Day
Nobuhiro Nakajima
#MA6 Mashup Lightning Talks #114 ATND Draft イベントの下書き保存とプレビューできちゃう Chrome Ex...
#MA6 Mashup Lightning Talks #114 ATND Draft イベントの下書き保存とプレビューできちゃう Chrome Ex...
Nobuhiro Nakajima
Google+ API の紹介 - Google Social Developers 2011 Winter
Google+ API の紹介 - Google Social Developers 2011 Winter
Nobuhiro Nakajima
Google Dev Fest 2010 Japan LT: OpenSocial JavaScript API is good, Lightweight...
Google Dev Fest 2010 Japan LT: OpenSocial JavaScript API is good, Lightweight...
Nobuhiro Nakajima
Google Apps をSocial にするOpenSocialPages (;゜○゜) お願いですから応募してください
Google Apps をSocial にするOpenSocialPages (;゜○゜) お願いですから応募してください
Nobuhiro Nakajima
i.ntere.st Overview
i.ntere.st Overview
Nobuhiro Nakajima
今すぐ誰でもOpenSocial コンテナになれるんです LIVE
今すぐ誰でもOpenSocial コンテナになれるんです LIVE
Nobuhiro Nakajima
Mashup Awards は新しい技術を試す絶好の機会です
Mashup Awards は新しい技術を試す絶好の機会です
Nobuhiro Nakajima
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣
Yuji Takayama
Mais conteúdo relacionado
Mais procurados
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for Design
Miho Nakano
WordPressと外部APIとの連携
WordPressと外部APIとの連携
Hidekazu Ishikawa
第一回Miim勉強会
第一回Miim勉強会
Yuri Kawamoto
jQuery勉強会#2
jQuery勉強会#2
Ryo Maruyama
jQuery超入門編
jQuery超入門編
Yasuhito Yabe
jQuery Mobileの基礎
jQuery Mobileの基礎
Takashi Okamoto
WordPressで提供するWeb API
WordPressで提供するWeb API
Yuko Toriyama
Vue Router + Vuex
Vue Router + Vuex
Kei Yagi
Monaca公式ガイドブック発売記念全国キャラバン
Monaca公式ガイドブック発売記念全国キャラバン
アシアル株式会社
Monaca公式ガイドブック発売記念全国キャラバン
Monaca公式ガイドブック発売記念全国キャラバン
アシアル株式会社
Jetpack Workshop
Jetpack Workshop
Hideaki Miyake
Mais procurados
(11)
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for Design
WordPressと外部APIとの連携
WordPressと外部APIとの連携
第一回Miim勉強会
第一回Miim勉強会
jQuery勉強会#2
jQuery勉強会#2
jQuery超入門編
jQuery超入門編
jQuery Mobileの基礎
jQuery Mobileの基礎
WordPressで提供するWeb API
WordPressで提供するWeb API
Vue Router + Vuex
Vue Router + Vuex
Monaca公式ガイドブック発売記念全国キャラバン
Monaca公式ガイドブック発売記念全国キャラバン
Monaca公式ガイドブック発売記念全国キャラバン
Monaca公式ガイドブック発売記念全国キャラバン
Jetpack Workshop
Jetpack Workshop
Destaque
appengine ja night #10 Google AppEngine で作る Google Apps Marketplace 対応サービス
appengine ja night #10 Google AppEngine で作る Google Apps Marketplace 対応サービス
Nobuhiro Nakajima
OSDE と OpenSocial jQuery で作る簡単ソーシャルアプリ (1/3)
OSDE と OpenSocial jQuery で作る簡単ソーシャルアプリ (1/3)
Nobuhiro Nakajima
#MA6 Mashup Camp - Social Platform Day
#MA6 Mashup Camp - Social Platform Day
Nobuhiro Nakajima
#MA6 Mashup Lightning Talks #114 ATND Draft イベントの下書き保存とプレビューできちゃう Chrome Ex...
#MA6 Mashup Lightning Talks #114 ATND Draft イベントの下書き保存とプレビューできちゃう Chrome Ex...
Nobuhiro Nakajima
Google+ API の紹介 - Google Social Developers 2011 Winter
Google+ API の紹介 - Google Social Developers 2011 Winter
Nobuhiro Nakajima
Google Dev Fest 2010 Japan LT: OpenSocial JavaScript API is good, Lightweight...
Google Dev Fest 2010 Japan LT: OpenSocial JavaScript API is good, Lightweight...
Nobuhiro Nakajima
Google Apps をSocial にするOpenSocialPages (;゜○゜) お願いですから応募してください
Google Apps をSocial にするOpenSocialPages (;゜○゜) お願いですから応募してください
Nobuhiro Nakajima
i.ntere.st Overview
i.ntere.st Overview
Nobuhiro Nakajima
今すぐ誰でもOpenSocial コンテナになれるんです LIVE
今すぐ誰でもOpenSocial コンテナになれるんです LIVE
Nobuhiro Nakajima
Mashup Awards は新しい技術を試す絶好の機会です
Mashup Awards は新しい技術を試す絶好の機会です
Nobuhiro Nakajima
Destaque
(10)
appengine ja night #10 Google AppEngine で作る Google Apps Marketplace 対応サービス
appengine ja night #10 Google AppEngine で作る Google Apps Marketplace 対応サービス
OSDE と OpenSocial jQuery で作る簡単ソーシャルアプリ (1/3)
OSDE と OpenSocial jQuery で作る簡単ソーシャルアプリ (1/3)
#MA6 Mashup Camp - Social Platform Day
#MA6 Mashup Camp - Social Platform Day
#MA6 Mashup Lightning Talks #114 ATND Draft イベントの下書き保存とプレビューできちゃう Chrome Ex...
#MA6 Mashup Lightning Talks #114 ATND Draft イベントの下書き保存とプレビューできちゃう Chrome Ex...
Google+ API の紹介 - Google Social Developers 2011 Winter
Google+ API の紹介 - Google Social Developers 2011 Winter
Google Dev Fest 2010 Japan LT: OpenSocial JavaScript API is good, Lightweight...
Google Dev Fest 2010 Japan LT: OpenSocial JavaScript API is good, Lightweight...
Google Apps をSocial にするOpenSocialPages (;゜○゜) お願いですから応募してください
Google Apps をSocial にするOpenSocialPages (;゜○゜) お願いですから応募してください
i.ntere.st Overview
i.ntere.st Overview
今すぐ誰でもOpenSocial コンテナになれるんです LIVE
今すぐ誰でもOpenSocial コンテナになれるんです LIVE
Mashup Awards は新しい技術を試す絶好の機会です
Mashup Awards は新しい技術を試す絶好の機会です
Semelhante a SocialWeb Conference vol.5 OpenSocial Night #2
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣
Yuji Takayama
初めての Data api
初めての Data api
Yuji Takayama
Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界
Yuji Takayama
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -
Yuji Takayama
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用
Yatabe Terumasa
IgGrid 入門編
IgGrid 入門編
Daizen Ikehara
Visualforce + jQuery
Visualforce + jQuery
Salesforce Developers Japan
Jqm20120804 publish
Jqm20120804 publish
Takashi Okamoto
jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
Takashi Okamoto
Mashup Caravan in オープンソースカンファレンス2011 Hiroshima: infoScoop OpenSource
Mashup Caravan in オープンソースカンファレンス2011 Hiroshima: infoScoop OpenSource
cmutoh
勉強会force#2 HTML5によるモバイルアプリ開発
勉強会force#2 HTML5によるモバイルアプリ開発
Kazuki Nakajima
APIMeetup 20170329_ichimura
APIMeetup 20170329_ichimura
Tomohiro Ichimura
CodeIgniterによるPhwittr
CodeIgniterによるPhwittr
kenjis
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
Ayumi Goto
ARC-003_モダン Web: たった今と、ほんの少し未来の話
ARC-003_モダン Web: たった今と、ほんの少し未来の話
decode2016
Webに今求められているレベル: HTML5 コントロールを利用した開発
Webに今求められているレベル: HTML5 コントロールを利用した開発
インフラジスティックス・ジャパン株式会社
20110714 j queryベーシック
20110714 j queryベーシック
良太 増子
WordPressで制御するこれからのIoT
WordPressで制御するこれからのIoT
Yuriko IKEDA
Jqm20120210
Jqm20120210
cmtomoda
Semelhante a SocialWeb Conference vol.5 OpenSocial Night #2
(20)
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api
初めての Data api
Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用
IgGrid 入門編
IgGrid 入門編
Visualforce + jQuery
Visualforce + jQuery
Jqm20120804 publish
Jqm20120804 publish
jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
Mashup Caravan in オープンソースカンファレンス2011 Hiroshima: infoScoop OpenSource
Mashup Caravan in オープンソースカンファレンス2011 Hiroshima: infoScoop OpenSource
勉強会force#2 HTML5によるモバイルアプリ開発
勉強会force#2 HTML5によるモバイルアプリ開発
APIMeetup 20170329_ichimura
APIMeetup 20170329_ichimura
CodeIgniterによるPhwittr
CodeIgniterによるPhwittr
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
ARC-003_モダン Web: たった今と、ほんの少し未来の話
ARC-003_モダン Web: たった今と、ほんの少し未来の話
Webに今求められているレベル: HTML5 コントロールを利用した開発
Webに今求められているレベル: HTML5 コントロールを利用した開発
20110714 j queryベーシック
20110714 j queryベーシック
WordPressで制御するこれからのIoT
WordPressで制御するこれからのIoT
Jqm20120210
Jqm20120210
SocialWeb Conference vol.5 OpenSocial Night #2
1.
OpenSocial jQuery による ウェブ制作スキルを活かした OpenSocial アプリケーション開発
SocialWeb Conference vol.5 〜 OpenSocial Night #2 〜 2010年2月23日 なかじまんソフトウェア株式会社 中嶋信博 http://nakajiman.lrlab.to/ 1
2.
目次 • OpenSocial アプリの基本性質の振り返り • OpenSocial jQuery の目的と概要の紹介 •
OpenSocial jQuery による iGoogle ガジェッ トの開発 • OpenSocial jQuery による mixi アプリの開 発 • パーミッションモデルと OpenSocial jQuery のエラーハンドリング 2
3.
OpenSocial アプリのつくりって … Profile ビュー
Canvas ビュー 3
4.
ビューがページのウェブアプリです <?xml version="1.0" encoding="UTF8" ?> <Module> <ModulePrefs title="Hello, world!" /> <Content type="html" view="profile"><![CDATA[ Hello, world! ]]></Content>
ビュー = ページ = iframe <Content type="html" view="canvas"><![CDATA[ Hello, world! ]]></Content> HTML + CSS + JavaScript </Module> 4
5.
ウェブアプリとの違いは OpenSocial API を使い、その影響を受けること • OpenSocial JavaScript API
– OpenSocial API: opensocial.* – Gadgets API: gadgets.* – 拡張 API: mixi.* goohome.* … • OpenSocial RESTful API – RESTful Protocol – JSONRPC Protocol • パーミッションモデル – 情報の取得や更新の制限 5
6.
例 OpenSocial JavaScript API
Hello, Viewer <Content type="html"><![CDATA[ <script type="text/javascript"> function init() { var req = opensocial.newDataRequest(); req.add(req.newFetchPersonRequest( opensocial.IdSpec.PersonId.VIEWER), "viewer"); req.send(function(data) { var viewer = data.get("viewer").getData(); var id = viewer.getId(); var name = viewer.getDisplayName(); var thumbnailUrl = viewer.getField( opensocial.Person.Field.THUMBNAIL_URL); }); } gadgets.util.registerOnLoadHandler(init); </script> 6 ]]></Content>
7.
OpenSocial アプリは HTML + CSS + JavaScript
で開発できる典型的なウェブアプリ OpenSocial jQuery の目的 OpenSocial アプリは OpenSocial API + パーミッションモデル で成り立つプラットフォーム専用アプリ 7
8.
OpenSocial jQuery は、 OpenSocial JavaScript API を jQuery で橋渡することで、 OpenSocial アプリをウェブアプ リのように開発できるようにする JavaScript ライブラリです
8
9.
例 OpenSocial jQuery
Hello, Viewer <Content type="html"><![CDATA[ <script type="text/javascript" src="opensocialjquery.js"></script> <script type="text/javascript"> jQuery(document).ready(function($) { $.get('/people/@viewer', function(data) { var viewer = data[0]; var id = viewer.id; var name = viewer.nickname; var thumbnailUrl = viewer.thumbnailUrl; }, 'data'); }); </script> ]]></Content> 9
10.
OpenSocial jQuery への期待 • jQuery の高いシェア、広いターゲット層 –
ウェブ制作の関係者 • jQuery によるウェブ制作スキルの活用 – ウェブ制作の開発手法、デザイン手法 • jQuery によるウェブ制作実績の活用 – ソースコードの移植性、jQuery プラグイン • OpenSocial アプリの活性化 – SAP (Social Application Provider) の動機 10
11.
OpenSocial jQuery の情報源 • ダウンロード v1.3.2.5 / v1.2.6.5
– http://code.google.com/p/opensocialjquery • ライセンス – MIT License – Apache License 2.0 (Templates プラグインのみ) • ドキュメント en / ja – http://code.google.com/p/opensocialjquery/w • メーリングリスト – http://groups.google.com/group/opensocialjquery • コミッタ コントリビュータ – @nakajiman @rkanbe @lackac @jonca.rafal 11
12.
OpenSocial jQuery の対応環境 • mixi アプリ (PC) • goo ホームガジェット •
CREYLE アプリ (最終確認中) • iGoogle ガジェット • Google Friend Connect ガジェット Apache Shindig http://shindig.apache.org/ • OpenSocial: Orkut、hi5、Partuza … • Gadgets: Google Wave … 12
13.
OpenSocial jQuery の構成
OpenSocial JavaScript API OpenSocial jQuery: opensocialjquery.js jQuery 1.3.2 JSDeferred 0.2.2 コアプラグイン 拡張プラグイン: opensocialjquery.<name>.js jQuery プラグイン 13 OpenSocial アプリ
14.
OpenSocial jQuery の対応範囲
Gadgets API: gadgets.* • jQuery.fn.ready • jQuery.view & – ガジェットのロード jQuery.views • jQuery.ajax & – ビューの判別と遷移 jQuery.getFeed • jQuery.fn.height & – 外部サーバの呼び出し jQuery.fn.adjustHeight & – 署名リクエスト jQuery.fn.autoHeight – フィードの取得 – 高さの変更 • jQuery.pref & • jQuery.fn.minimessage jQuery.prefArray – ミニメッセージの表示 – プリファレンスとパラメータの取得 14
15.
OpenSocial jQuery の対応範囲
Gadgets API: gadgets.* • jQuery.fn.tab • jQuery.fn.title – タブの表示 – タイトルの変更 • jQuery.flash.version • jQuery.msg – Flash バージョンの判別 – メッセージバンドルの取得 • jQuery.fn.flash • jQuery.container.cache – Flash の埋め込み – キャッシュの制御 • jQuery.pub & jQuery.sub – ガジェット間のメッセージ送受信 • jQuery.feature – フィーチャーの判別とパラメータの取得 15
16.
外部サーバの呼び出し <script type="text/javascript"> jQuery(document).ready(function($) {
$.ajax({ url: 'http://gdata.youtube.com/feeds/videos', data: { vq: 'corgi', alt: 'json' }, dataType: 'json', success: function(data, status) { $.each(data.feed.entry, function(i, entry) { var img = $('<img/>') .attr('src', entry.media$group.media$thumbnail[0].url) $('<li/>').append(img).appendTo('#videos'); }); }, error: function(xhr, status, e) { $('<span/>').text(status).minimessage(); } }); }); </script> <ul id="videos"></ul> 16
17.
ビューの遷移 canvas へ <Content type="html" view="home"><![CDATA[ <script type="text/javascript"> jQuery(document).ready(function($) {
$.getJSON('http://picasaweb.google.com/data/feed/api/all', { q: $.pref('q'), alt: 'json', 'maxresults': 20 }, function(data) { $.each(data.feed.entry, function(i, entry) { var img = $('<img/>') .attr('src', entry.media$group.media$thumbnail[0].url) .click(function() { $.view('canvas', { url: entry.content.src }); }); $('<li/>').append(img).appendTo('#photos'); }); }); }); </script> <ul id="photos"></ul> ]]></Content> 17
18.
ビューの遷移 home から <Content type="html" view="canvas"><![CDATA[ <script type="text/javascript"> jQuery(document).ready(function($, data) {
$(window).height(400); $('<img/>').attr('src', data.url).appendTo('body'); }); </script> ]]></Content> 18
19.
署名リクエスト + OpenSocial Host var form = $('form').submit(function() {
$.post('http://opensocialhost.com/data/insert signed', { key1: data.url + new Date().getTime(), value1: this.note.value }, function() { … }, 'json'); return false; }); $.post('http://opensocialhost.com/data/search signed', { key: data.url }, function(res) { ... }, 'json'); <form> <input name="note" type="text" /> <input type="submit" value="保存" /> </form> <ul id="notes"></ul> 19
20.
OpenSocial jQuery の対応範囲 OpenSocial API: opensocial.* • jQuery.ajax & jQuery.getData
– プロフィール情報、友達情報の取得 – 永続化情報の取得と保存 (削除は未対応) – アクティビティの取得と送信 – メッセージの送信 – アルバム情報、写真情報の取得 • jQuery.container – コンテナの判別、ドメインの取得 20
21.
友達伝言板アプリ
21
22.
プロフィール情報の取得 $.get('/people/@viewer', { fields: 'profileUrl' }, function(data) {
var person = data[0]; $('#self a').attr({ title: person.nickname, href: person.profileUrl }); $('#self a img').attr('src', person.thumbnailUrl); }, 'data'); <div id="self"> <a target="_top"><img/></a> </div> 22
23.
永続化情報の取得と保存 var form = $('form').submit(function() {
$.postData('/appdata/@viewer', { comment: this.comment.value }); return false; }); $.getData('/appdata/@viewer', function(data) { $.each(data, function(id, data) { form[0].comment.value = data.comment || ''; }); }); <form> <input name="comment" type="text" /> <input type="submit" value="更新" /> </form> 23
24.
プロフィール情報と
永続化情報の同時取得 $.getData('/people/@viewer', { appData: 'comment' }, function(data) { var person = data[0]; form[0].comment.value = person.appData.comment || ''; form.find('img').attr({ title: person.nickname, src: person.thumbnailUrl }); }); <form> <img/> <input name="comment" type="text" /> <input type="submit" value="保存" /> </form> 24
25.
友達情報の取得 $.getData('/people/@viewer/@friends', { appData: 'comment' },
function(data) { $.each(data, function(i, person) { var img = $('<img/>') .attr({ title: person.nickname, src: person.thumbnailUrl }); $('<li/>').text(person.appData.comment || '').prepend(img) .appendTo('#friends'); }); // data.startIndex // data.itemsPerPage // data.totalResults }); <ul id="friends"></ul> 25
26.
プロフィール情報、友達情報の取得 • GET /people/@viewer/@self • GET /people/@viewer/@friends •
GET /people/@viewer/@friends/@app • GET /people/@owner/ … • GET /people/<id>/ … @self は省略可 @viewer は @me でも可 • fields, appData, filterBy, sortBy, startIndex, count パラメータ 26
27.
永続化情報の取得と保存 • GET or POST /appdata/@viewer/@self • GET /appdata/@viewer/@friends •
GET /appdata/@viewer/@friends/@app • GET /appdata/@owner/ … • GET /appdata/<id>/ … @self は省略可 @viewer は @me でも可 • fields パラメータ • gadgets.json.stringify と parse を自動化 27
28.
アクティビティの送信 var form = $('form').submit(function() {
$.postData('/appdata/@viewer', { comment: this.comment.value }, function() { $.postData('/activities/@viewer', { title: 'コメントを更新しました' }); $('<span/>').text('コメントを更新しました').minimessage('slow'); } ); return false; }); 28
29.
メッセージの送信 var img = $('<img/>')
.attr({ title: person.nickname, src: person.thumbnailUrl }); .click(function() { $.postData('/messages/@viewer/@outbox', { recipients: person.id, title: '', body: 'コメントの催促です。コメントを更新してください。' }); }); 29
30.
アクティビティの取得と送信 • GET or POST /activities/@viewer/@self • GET /activities/@viewer/@friends •
GET /activities/@owner/ … • GET /activities/<id>/ … @self は省略可 @viewer は @me でも可 • title, body, url, mediaItems, … recipients (mixi 拡張) パラメータ 30
31.
メッセージの送信 • POST /messages/@viewer/@outbox @viewer は @me でも可 • recipients, title, body パラメータ
31
32.
OpenSocial jQuery の対応範囲
拡張 API: mixi.* • jQuery.ajax – 学校の選択 – 学校リストの取得 – コミュニティ情報の取得 • jQuery.invite – 友達の招待 – 同級生の招待 • jQuery.view – 外部サイトへの誘導 32
33.
友達の招待 $('#invite').click(function() {
$.invite(function(ids) { $.postData('/appdata/@viewer', { inviteIds: ids }); }); return false; }); <a id="invite" href="#invite"> 友達を招待する</a> 33
34.
おやおや? Viewer や友達が アプリをインストールしていないと …
34
35.
OpenSocial API の制限を受けます • Viewer がアプリをインストールしていない –
プロフィール情報の取得が ID のみに制限される – 友達情報の取得がエラーになる – 永続化情報の取得と保存がエラーになる – アクティビティの送信がエラーになる – メッセージの送信がエラーになる – 友達の招待がエラーになる • 友達がアプリをインストールしていない – アプリに関するプライバシー設定にしたがい、 友達情報の取得が許可項目のみに制限される 35
36.
36
37.
エラーハンドリング 3つの方法 $.ajax({
url: '/people/@viewer/@friends', data: { fields: 'profileUrl', appData: 'comment' }, dataType: 'data', success: function(data, status) { … }, error: function(xhr, status, e) { $('<span/>').text('エラーが発生しました。').minimessage(); } }); $('body').ajaxError(function(event, xhr, settings, e) { $('<span/>').text('エラーが発生しました。').minimessage(); }); $.getData('/people/@viewer/@friends', { … }).next(function(data) { … }).error(function(data) { $('<span/>').text('エラーが発生しました。').minimessage(); }); 37
38.
アプリ説明ページに遷移し、
アプリのインストールを促す $.getData('/people/@viewer', { … }, function(data) { … }).getData('/people/@viewer/@friends', { … }, function(data) { … }).error(function(e) { var url = 'http://mixi.jp/view_appli.pl?' + $.param({ id: $.pref('app_id') }); window.open(url, '_top'); }); 38
39.
取得できない項目を補うか、アプリを インストールしている友達に限定する var img = $('<img/>').attr({
title: person.nickname || 'ゲスト', src: person.thumbnailUrl || 'http://img.mixi.jp/img/basic/common/noimage_member76.gif' }); $.getData('/people/@viewer/@friends/@app', { … }, function(data) { … }) 39
40.
そして、完成 … ウェブアプリと同じに 見えました? 違うように見えました?
40
41.
ありがとうございました ウェブ制作の関係者のみなさん
お持ちのウェブ制作スキルと実績で OpenSocial アプリケーションを 開発してみませんか? OpenSocial jQuery がきっと役立ちます 41
Baixar agora