Proposal for 0.8 : HAS_APP as field on Person

1 view
Skip to first unread message

Louis Ryan

unread,
Mar 26, 2008, 1:36:35 PM3/26/08
to opensocial-an...@googlegroups.com
The information about whether a user has an app installed is defined as a FilterType in 0.7

http://code.google.com/apis/opensocial/docs/0.7/reference/opensocial.DataRequest.FilterType.html

but is not defined as a field on the Person object. In the situation where an application wants to get a users friends and act on them differently based on whether they have the application installed or not unfortunately requires them to make two fetch calls to determine the two sets.

This is inefficient for both the application developer and containers.

I'm planning to add this as an Orkut specific extension to the API but hopefully this one is a no-brainer.

-Louis

Maxwell Newbould

unread,
Mar 26, 2008, 1:49:47 PM3/26/08
to opensocial-an...@googlegroups.com

+1

 

We’re paying close attention to the dev community on how they are leveraging the interface, and see a large amount of redundant calls for items such as this.

 

Another to consider would be mutual friends as a FilterType (friends shared b/w viewer and owner).

 

Cheers,

Max

Lou

unread,
Mar 26, 2008, 3:22:49 PM3/26/08
to OpenSocial and Gadgets Specification Discussion
+1

great idea, we should support both the filter and the field

-Lou

On Mar
26, 10:36 am, "Louis Ryan" <lr...@google.com> wrote:
> The information about whether a user has an app installed is defined as a
> FilterType in 0.7
>
> http://code.google.com/apis/opensocial/docs/0.7/reference/opensocial....

Navaneeth Krishnan

unread,
Mar 26, 2008, 10:40:13 PM3/26/08
to opensocial-an...@googlegroups.com

Hi Louis,

Just wanted to share my feedback on this.

HAS_APP is actually HAS_APP_DATA. i.e it denotes if the application is
installed
*and* the user has some app data.

Now, a very common use case is to get a list of all friends of the owner
who has the application installed.
To be able to do this, many developers have resorted to storing some
dummy app data as a "flag" to know
that the user has installed the app. This is a less than optimal
solution. A better solution is for the HAS_APP filter
to evaluate to true is the user has the app installed in his/her
profile. The actual app data needs to be obtained by a
separate newFetchPersonAppDataRequest anyways.


Regards,
Navaneeth

Maxwell Newbould

unread,
Mar 26, 2008, 11:22:44 PM3/26/08
to opensocial-an...@googlegroups.com

I agree that HAS_APP_DATA doesn't seem useful in that one would call newFetchPersonAppDataRequest([viewer|owner]_friends) to get app data for that subset of friends. 

What is the use case for HAS_APP_DATA?  Breaking up app data retrieval for a smaller group of friends?

HAS_APP is included in our container as just having the app installed.

Cheers,
Max

Lou

unread,
Mar 27, 2008, 12:33:45 AM3/27/08
to OpenSocial and Gadgets Specification Discussion
i agree as well -- pretty sure we didn't notice that in the spec and
just assumed HAS_APP meant the app is installed, since it makes more
sense. Our implementation on launch will likely fuction that way as
well.
> >http://code.google.com/apis/opensocial/docs/0.7/reference/opensocial....

Evan Gilbert

unread,
Mar 27, 2008, 11:44:03 AM3/27/08
to opensocial-an...@googlegroups.com
HAS_APP == has data was originally conceived when we weren't sure there would be an install process.

We still think it's a really good idea to allow people to use apps without "installing" (see the great blog post by Jonathan Terleski @ http://opensocialapis.blogspot.com/2008/03/different-kind-of-opensocial-container.html), but it's also clear that may containers will have an install step.

Longer term we are going to want filters by having a particular app data key - you really want to see all of the people who actually have data. For example, if you install a "where my friends are" application, but don't actually enter in your location, it may not be useful for your friends to get you in the list. Also, you'll definitely want to sort by app data - when getting your friends' Pac Man high scores, you'll want the highest ones first.

I think that HAS_APP should be whether the container thinks is appropriate for now (either installed or has app data), and we should add HAS_APP_DATA in the future with a key for better filtering and sorting option.

Evan

Paul Walker

unread,
Mar 28, 2008, 5:57:51 AM3/28/08
to opensocial-an...@googlegroups.com

Evan…I don’t even have to read the blog.

 

+1 on apps having the ability to engage with users that don’t have the app installed.

 

-1 on the concept of installed apps.  This will probably be the direction MySpace will be going.  Users can bookmark an app/block apps/block all apps/allow it to display on profile(or other surfaces)/get perms to data/but default basic data to apps/etc….make sense?

 

~Paul

Louis Ryan

unread,
Mar 28, 2008, 1:35:34 PM3/28/08
to opensocial-an...@googlegroups.com
+1 on the ability to use apps without 'installing' them. We could take the literal interpretation and define HAS_APP as meaning 'added to the users profile content for others to see'

In situations where users work with an application and grant it permissions without ever installing it I would be wary of using HAS_APP_DATA to indicate this.

A more general USES_APP may be in order based on whether the user has granted the application permission to see their profile information.

Cassie

unread,
Mar 31, 2008, 10:48:02 AM3/31/08
to opensocial-an...@googlegroups.com
I'd like to clarify this with the code changes we would need to make to the spec:

opensocial.Person.Field = {
 ...
 /**
   * A boolean indicating whether the person has used the current app.
   * @member opensocial.Person.Field
   */
  HAS_APP : 'hasApp',
...
}


opensocial.DataRequest.FilterType = {
  ...
  /**
   * Retrieves all friends who have used this application.
   *
   * @member opensocial.DataRequest.FilterType
   */
  HAS_APP : 'hasApp'
};


Does this look right?
Or did we want to do something different?

Thanks.

- Cassie

Evan Gilbert

unread,
Mar 31, 2008, 11:27:29 AM3/31/08
to opensocial-an...@googlegroups.com
I would consider making this more explicitly container-defined. "Used" is pretty fuzzy, and we should expect that containers won't all have the same semtantics.

Maybe the additional line "Containers may define "used" in any manner they deem appropriate for their functionality, and it is not expected that this field will have the exact same semantics across containers". Or something less wordy, but that gives the gist.

Evan

Cassie

unread,
Mar 31, 2008, 11:33:36 AM3/31/08
to opensocial-an...@googlegroups.com
Okay, adding the line you specified, here is code change attempt #2 for this issue:


opensocial.Person.Field = {
 ...
 /**
   * A boolean indicating whether the person has used the current app.
   * @member opensocial.Person.Field
   */
  HAS_APP : 'hasApp',
...
}


opensocial.DataRequest.FilterType = {
  ...
  /**
   * Retrieves all friends who have used this application.
   *
   * Note: Containers may define "used" in any manner they deem appropriate
   * for their functionality, and it is not expected that this field will have the exact
   * same semantics across containers.

   *
   * @member opensocial.DataRequest.FilterType
   */
  HAS_APP : 'hasApp'
};


Please let me know if this works for everyone.

- Cassie

Cassie

unread,
Mar 31, 2008, 11:49:18 AM3/31/08
to opensocial-an...@googlegroups.com
Okay, adding the line you specified, here is code change attempt #2 for this issue:

opensocial.Person.Field = {
 ...
 /**
   * A boolean indicating whether the person has used the current app.
   * @member opensocial.Person.Field
   */
  HAS_APP : 'hasApp',
...
}


opensocial.DataRequest.FilterType = {
  ...
  /**
   * Retrieves all friends who have used this application.
   *
   * Note: Containers may define "used" in any manner they deem appropriate
   * for their functionality, and it is not expected that this field will have the exact
   * same semantics across containers.

   *
   * @member opensocial.DataRequest.FilterType
   */
  HAS_APP : 'hasApp'
};


Please let me know if this works for everyone.

- Cassie



On Mon, Mar 31, 2008 at 5:27 PM, Evan Gilbert <uid...@google.com> wrote:

John Panzer

unread,
Mar 31, 2008, 12:50:10 PM3/31/08
to opensocial-an...@googlegroups.com
On Mon, Mar 31, 2008 at 8:33 AM, Cassie <do...@google.com> wrote:
Okay, adding the line you specified, here is code change attempt #2 for this issue:


opensocial.Person.Field = {
 ...
 /**
   * A boolean indicating whether the person has used the current app.
   * @member opensocial.Person.Field
   */
  HAS_APP : 'hasApp',
...
}


opensocial.DataRequest.FilterType = {
  ...
  /**
   * Retrieves all friends who have used this application.
   *
   * Note: Containers may define "used" in any manner they deem appropriate
   * for their functionality, and it is not expected that this field will have the exact
   * same semantics across containers.

Sounds a lot like friending (1/2 :) ).

 

Daniel Danger Bentley

unread,
Mar 31, 2008, 12:53:53 PM3/31/08
to opensocial-an...@googlegroups.com
Well, not to be a pedant, but ISTM that "who have used" sounds irrevocable.  I want some way to break up with an app.  Thus, I'd prefer a phrasing like "use" which is not so much a statement about has what happened as one about the current state.

This email actually was to be a pedant, but pedant gratia pedantis,
-D
--
'Ladislav Sticha, the tall spokesman for Czech Television, told me that the show's audience was "miniature" — presumably he meant small in number.' - New York Times, January 24, 2008

John Panzer

unread,
Mar 31, 2008, 1:06:40 PM3/31/08
to opensocial-an...@googlegroups.com
On Mon, Mar 31, 2008 at 9:53 AM, Daniel Danger Bentley <dtbe...@gmail.com> wrote:
Well, not to be a pedant, but ISTM that "who have used" sounds irrevocable.  I want some way to break up with an app. 

So, _really_ like friends :).


Cassie

unread,
Mar 31, 2008, 1:16:50 PM3/31/08
to opensocial-an...@googlegroups.com
lolol.

okay, so "who have used" -> "use"
and "Containers may define "used" " -> "Containers may define "use" "

- Cassie

Daniel Danger Bentley

unread,
Mar 31, 2008, 1:18:14 PM3/31/08
to opensocial-an...@googlegroups.com
+1

Cassie

unread,
Apr 14, 2008, 6:45:24 AM4/14/08
to opensocial-an...@googlegroups.com
This thread has 1 positive vote from Dan Bentley.
Do at least 4 more people agree that this is a good idea?

opensocial.Person.Field = {
...
/**
* A boolean indicating whether the person has used the current app.
* @member opensocial.Person.Field
*/
HAS_APP : 'hasApp',
...
}


opensocial.DataRequest.FilterType = {
...
/**
* Retrieves all friends use this application.
*
* Note: Containers may define "use" in any manner they deem appropriate for
* their functionality, and it is not expected that this field will


have the exact
* same semantics across containers

*
* @member opensocial.DataRequest.FilterType
*/
HAS_APP : 'hasApp'
};


- Cassie


On Mon, Mar 31, 2008 at 7:18 PM, Daniel Danger Bentley


<dtbe...@gmail.com> wrote:
> +1
>
> On Mon, Mar 31, 2008 at 1:16 PM, Cassie <do...@google.com> wrote:
>>
>> lolol.
>>
>> okay, so "who have used" -> "use"
>> and "Containers may define "used" " -> "Containers may define "use" "
>>
>> - Cassie
>>
>>
>> On Mon, Mar 31, 2008 at 7:06 PM, John Panzer <jpa...@google.com> wrote:
>>>
>>> On Mon, Mar 31, 2008 at 9:53 AM, Daniel Danger Bentley
>>> <dtbe...@gmail.com> wrote:
>>>>
>>>> Well, not to be a pedant, but ISTM that "who have used" sounds
>>>> irrevocable. I want some way to break up with an app.
>>>
>>> So, _really_ like friends :).
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>
> --
> 'Ladislav Sticha, the tall spokesman for Czech Television, told me that the

> show's audience was "miniature" -- presumably he meant small in number.' -

Reinoud Elhorst

unread,
Apr 14, 2008, 7:21:55 AM4/14/08
to opensocial-an...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

+1

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIAz5TqCQnCrE98GgRAlx3AKCYcA9ogsZY5A4lrruALgSnKr8v5gCfdZgl
duGpzye1HDqPHqs/rSX/Xs0=
=WJBk
-----END PGP SIGNATURE-----

Chris Chabot

unread,
Apr 14, 2008, 8:00:17 AM4/14/08
to opensocial-an...@googlegroups.com
+1

Paul Lindner

unread,
Apr 14, 2008, 10:16:57 AM4/14/08
to opensocial-an...@googlegroups.com
+1

On Mon, Apr 14, 2008 at 12:45:24PM +0200, Cassie wrote:
>
> This thread has 1 positive vote from Dan Bentley.
> Do at least 4 more people agree that this is a good idea?
>

--
Paul Lindner ||||| | | | | | | | | |
lin...@inuus.com

Lane LiaBraaten

unread,
Apr 14, 2008, 7:51:05 PM4/14/08
to opensocial-an...@googlegroups.com
+1

Amar Gandhi

unread,
Apr 14, 2008, 8:00:59 PM4/14/08
to opensocial-an...@googlegroups.com
+1.  this will save developers from having to fetch all the friends and doing a compare to get this info.  so, this proposal wins on two counts - developer productivity and latency.


From: opensocial-an...@googlegroups.com [mailto:opensocial-an...@googlegroups.com] On Behalf Of Lane LiaBraaten
Sent: Monday, April 14, 2008 4:51 PM
To: opensocial-an...@googlegroups.com

Subject: Re: Proposal for 0.8 : HAS_APP as field on Person

Louis Ryan

unread,
Apr 15, 2008, 12:45:41 PM4/15/08
to opensocial-an...@googlegroups.com
+1

Nat Brown (ilike.com)

unread,
Apr 16, 2008, 3:58:29 AM4/16/08
to OpenSocial and Gadgets Specification Discussion
+1 as well, just do it.

On Apr 15, 9:45 am, "Louis Ryan" <lr...@google.com> wrote:
> +1
>
> On Mon, Apr 14, 2008 at 5:00 PM, Amar Gandhi <am...@google.com> wrote:
> > +1. this will save developers from having to fetch all the friends and
> > doing a compare to get this info. so, this proposal wins on two counts -
> > developer productivity and latency.
>
> > ------------------------------
> > *From:* opensocial-an...@googlegroups.com [mailto:
> > opensocial-an...@googlegroups.com] *On Behalf Of *Lane
> > LiaBraaten
> > *Sent:* Monday, April 14, 2008 4:51 PM
> > *To:* opensocial-an...@googlegroups.com
> > *Subject:* Re: Proposal for 0.8 : HAS_APP as field on Person
>
> > +1
>
> > On Mon, Apr 14, 2008 at 7:16 AM, Paul Lindner <lind...@inuus.com> wrote:
>
> > > +1
>
> > > On Mon, Apr 14, 2008 at 12:45:24PM +0200, Cassie wrote:
>
> > > > This thread has 1 positive vote from Dan Bentley.
> > > > Do at least 4 more people agree that this is a good idea?
>
> > > --
> > > Paul Lindner ||||| | | | | | | | | |
> > > lind...@inuus.com

Maxwell Newbould

unread,
Apr 16, 2008, 4:49:08 AM4/16/08
to OpenSocial and Gadgets Specification Discussion

+1

Paul Walker

unread,
Apr 17, 2008, 4:27:11 AM4/17/08
to OpenSocial and Gadgets Specification Discussion
+1

We already support this at myspace. :-).

(I wish these were all that easy)

-----Original Message-----
From: opensocial-an...@googlegroups.com
[mailto:opensocial-an...@googlegroups.com] On Behalf Of Nat
Brown (ilike.com)
Sent: Wednesday, April 16, 2008 12:58 AM
To: OpenSocial and Gadgets Specification Discussion

Cassie

unread,
Apr 20, 2008, 12:19:35 PM4/20/08
to opensocial-an...@googlegroups.com
fyi: this one is completely approved!
Reply all
Reply to author
Forward
0 new messages