マイミクの招待 (=requestShareApp) を jQuery.invite として実装してみました

60 views
Skip to first unread message

なかじまん

unread,
Nov 29, 2009, 6:01:55 PM11/29/09
to OpenSocial jQuery Discussion
おはようございます。なかじまんです。

要望がありながら、放置気味だった ↓ を jQuery.invite として実装してみました。

マイミクを招待しよう requestShareApp
http://developer.mixi.co.jp/appli/pc/lets_enjoy_making_mixiapp/invite_appli

今までは、多くのコンテナで最大公約数的な部分を実装してきたのですが、この
機会に、コンテナ固有の実装もしていこうと思います。で、そのコンテナ固有の実
装は、個別にプラグインという形で公開します。

↓プラグインはこちらです。ソースコードと圧縮版です。

http://opensocial-jquery.googlecode.com/svn/trunk/features/opensocial-jquery/opensocial-jquery.mixi.js
http://opensocial-jquery.googlecode.com/svn/trunk/features/opensocial-jquery/opensocial-jquery.mixi.min.js

↓実例はこちらです。

http://opensocial-jquery.googlecode.com/svn/trunk/tests/opensocial-jquery.mixi.test.xml

あと、

* 外部サイトへの誘導
* コミュニティ
* 同級生

などが実装の候補です。

spicebox 神部

unread,
Nov 30, 2009, 6:39:08 PM11/30/09
to opensoci...@googlegroups.com
なかじまんさん

実例拝見しました。下記、雑感です。

▼招待制工数のカウント

OpenSocial JavaScript API では

opensocial.requestShareApp(person.id, null, function(response) {
var recipientIds = response.getData()["recipientIds"];
//do someting...
});

と書くところが、

$('#invite').submit(function() {
$.invite(function(ids) {
$('#invite-result').render({ ids: ids }).show();
});
return false;
});

という感じになってるわけですね。これなら例えば
招待済みIDを保存しておいて、次回hasappフィルタで
増えていたIDとつきあわせて招待数成功を獲得し、
アプリのインセンティブにすることもできますね!

▼deferred?

後半では、

$('#invite-deferred').submit(function() {
$.invite().next(function(ids) {
...
として実行を順番にやっているんですけど、
これは通常のコールバック関数ではだめなんですか?
冒頭のOpenSocial JavaScript APIでは招待した
利用者の取得に失敗した記憶はあまりないのですが・・・

▼viewの引数のパラメータの受け取り方

あとは別件でjQueryメインの話になりますが、これまでの

jQuery(function($) {
});

から

$(document).ready(function() {
});

に書き方が変えはじめられたのですね。
こちら、

jQuery(function($, data) {
});

みたいなものは

$(document).ready(function($, data) {
});

とかけばいいのですかね。

http://code.google.com/p/opensocial-jquery/wiki/View

にあるように。

とりいそぎ。

--
神部
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Web のサービス続々リリース中!
http://labs.spicebox.jp/
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
スパイスボックスラボラトリ
神部竜二(mobile: 08059337029)
Ryuji Kanbe <ka...@spicebox.co.jp>

spicebox, inc. / 株式会社スパイスボックス
150-6016
渋谷区恵比寿4-20-3 YGPタワー16F
恵比寿ガーデンプレイス郵便局 私書箱5003
Tel 03-5449-7488 / Fax 03-5449-7487
http://www.spicebox.co.jp/
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

なかじまん

unread,
Dec 1, 2009, 7:41:19 AM12/1/09
to OpenSocial jQuery Discussion
こんばんは。なかじまんです。

> という感じになってるわけですね。これなら例えば
> 招待済みIDを保存しておいて、次回hasappフィルタで
> 増えていたIDとつきあわせて招待数成功を獲得し、
> アプリのインセンティブにすることもできますね!

あなたが招待した友達というのが判断できるというわけですね。いいすね。

> として実行を順番にやっているんですけど、
> これは通常のコールバック関数ではだめなんですか?
> 冒頭のOpenSocial JavaScript APIでは招待した
> 利用者の取得に失敗した記憶はあまりないのですが・・・

profile や home で呼び出すと fobidden エラーになることは把握してま
すが、canvas でエラーに出くわすことはなさそうです。

○○してから jQurey.invite とか、jQuery.invite してから○○みたい
なケースで、非同期メソッドをチェーンすると、役立つことがあるかも...
くらいのノリです。基本的な方針として、できるところは Deferred 対応
していこうという考え方です。

> $(document).ready(function($, data) {
> });
> とかけばいいのですかね。

そのとおりです。jQuery.view(viewName, data) として、view を切り替え
たとき、の data が引き渡されます。
> >http://developer.mixi.co.jp/appli/pc/lets_enjoy_making_mixiapp/invite...
>
> > 今までは、多くのコンテナで最大公約数的な部分を実装してきたのですが、この
> > 機会に、コンテナ固有の実装もしていこうと思います。で、そのコンテナ固有の実
> > 装は、個別にプラグインという形で公開します。
>
> > ↓プラグインはこちらです。ソースコードと圧縮版です。
>
> >http://opensocial-jquery.googlecode.com/svn/trunk/features/opensocial...
> >http://opensocial-jquery.googlecode.com/svn/trunk/features/opensocial...
>
> > ↓実例はこちらです。
>
> >http://opensocial-jquery.googlecode.com/svn/trunk/tests/opensocial-jq...

spicebox 神部

unread,
Dec 1, 2009, 12:39:09 PM12/1/09
to opensoci...@googlegroups.com
こんばんは。

ミクシィからUserPrefについて現状では実装の予定がない旨の
と回答がありショボーンな神部です。ただ、今後検討もある
かもしれませんし、そちらに期待していきたいと思います。

下記インラインにて。

>> という感じになってるわけですね。これなら例えば
>> 招待済みIDを保存しておいて、次回hasappフィルタで
>> 増えていたIDとつきあわせて招待数成功を獲得し、
>> アプリのインセンティブにすることもできますね!
>
> あなたが招待した友達というのが判断できるというわけですね。いいすね。

最近のだと「なで猫オロニャイン」がこれやってますね。
http://applimania.jp/2009/11/post-74.html
猫が特別なポーズをとってくれるのですが、なんとこれ
一回使うと消滅してしまうんです。また実行するためには
別の友達の招待に成功しなければならず、なかなかえげつないですw

>> として実行を順番にやっているんですけど、
>> これは通常のコールバック関数ではだめなんですか?
>> 冒頭のOpenSocial JavaScript APIでは招待した
>> 利用者の取得に失敗した記憶はあまりないのですが・・・
>
> profile や home で呼び出すと fobidden エラーになることは把握してま
> すが、canvas でエラーに出くわすことはなさそうです。
>
> ○○してから jQurey.invite とか、jQuery.invite してから○○みたい
> なケースで、非同期メソッドをチェーンすると、役立つことがあるかも...
> くらいのノリです。基本的な方針として、できるところは Deferred 対応
> していこうという考え方です。

なるほど~。Defferred 対応が基本であれば、意図しないトラブルが
減るのは確かですね。

>> $(document).ready(function($, data) {
>> });
>> とかけばいいのですかね。
>
> そのとおりです。jQuery.view(viewName, data) として、view を切り替え
> たとき、の data が引き渡されます。

なるほど。ってことは

$(document).ready(function() {

$(document).ready(function($) {

が同じということか・・・。なにかスッキリしませんが、
そういうものですかね。

--
神部

なかじまん

unread,
Dec 3, 2009, 6:07:14 PM12/3/09
to OpenSocial jQuery Discussion
おはようございます。なかじまんです。

続けて、マイミクに加えて、同級生を招待できるようにしました。

同級生招待機能
http://developer.mixi.co.jp/appli/pc/lets_enjoy_making_mixiapp/classmates

ソースコードと実例は、次の changeset を見てください。

http://code.google.com/p/opensocial-jquery/source/detail?r=640

マイミクと同様 jQuery.invite を使います。

(1) マイミクの招待
$.invite('@friends', function(ids) {
$.each(ids, function(i, id) { console.log(id) });
});

(2) 同級生の招待
$.invite('@classmates', function(ids) {
$.each(ids, function(i, id) { console.log(id) });
});

今までどおり @friends は省略できます。

(3) マイミクの招待
$.invite(function(ids) {
$.each(ids, function(i, id) { console.log(id) });
});

> あと、
> * 外部サイトへの誘導
> * コミュニティ
> * 同級生
> などが実装の候補です。

これで、ひととおりの機能を実装できたので、包括的にテストした後、
正式にリリースします。

週末は時間がないので、来週のどこかのタイミングになる予定です。
何かありましたら、それまでにフィードバックをお願いします。

On Nov 30, 8:01 am, なかじまん <nakaji...@lrlab.to> wrote:
> おはようございます。なかじまんです。
>
> 要望がありながら、放置気味だった ↓ を jQuery.invite として実装してみました。
>
> マイミクを招待しよう requestShareApphttp://developer.mixi.co.jp/appli/pc/lets_enjoy_making_mixiapp/invite...
>
> 今までは、多くのコンテナで最大公約数的な部分を実装してきたのですが、この
> 機会に、コンテナ固有の実装もしていこうと思います。で、そのコンテナ固有の実
> 装は、個別にプラグインという形で公開します。
>
> ↓プラグインはこちらです。ソースコードと圧縮版です。
>
> http://opensocial-jquery.googlecode.com/svn/trunk/features/opensocial...http://opensocial-jquery.googlecode.com/svn/trunk/features/opensocial...
>
> ↓実例はこちらです。
>
> http://opensocial-jquery.googlecode.com/svn/trunk/tests/opensocial-jq...
Reply all
Reply to author
Forward
0 new messages