RE: Contacts API typical use cases and privacy considerations

On Fri, Feb 19, 2010 at 16:59, richard.tibbett@orange-ftgroup.com wrote:
> This proposal is just a different 
> interpretation of the user interface required when accessing 
> Contacts.find(): throw up a non-modal 'contacts picker' 
> interface instead of a non-modal 'Allow'/'Deny' interface for example.
> 
> 1. the Contacts.find() API syntax remains as-is:
> 
> e.g., navigator.service.contacts.find({}, successCB, errorCB, 
> {fields:['name','addresses']})
> 
> 2. the 'Security and Privacy Considerations' may not need 
> modification. 
> 
> Perhaps we need to be more formal on this approach in the 
> methods and/or 'Security and Privacy Considerations'? My 
> initial reaction is that we don't.
> 

Here is an interpretation of this approach which falls in-line with the
current API documentation. It's essentially a file picker for contacts,
but it's implemented non-modally.

(I hope this renders OK off the reflector)


1. Before Contacts.find(...) invocation:

-----------------------------------------------------------
| Web Browser                                         _ x |
|  -----------------------------------------------------  |
|  | > http://mysite.com/contactsapi/demo            X |  |
|  -----------------------------------------------------  |
-----------------------------------------------------------
|                                                         |
|                                                         |
| API USAGE:                                              |
| ----------                                              |
|                                                         |
|    Implement as a button...                             |
|                                                         |
|         <input type="button" onClick="getContacts()" /> |
|         <script>                                        |
|                function getContacts() {                 |
|                  navigator.service.contacts.find(...);  |
|                }                                        |
|         </script>                                       |
|                                                         |
|    ...or call the Javascript directly:                  |
|                                                         |
|         <script>                                        |
|                navigator.service.contacts.find(...);    |
|         </script>                                       |
|                                                         |
|                                                         |
|                                                         |
|                                                         |
-----------------------------------------------------------


2. After Contacts.find(...) invocation:

(NOTE: this 'contacts picker dialog' looks big but really it doesn't
have to be this complicated...)

-----------------------------------------------------------
| Web Browser                                         _ x |
|  -----------------------------------------------------  |
|  | > http://mysite.com/contactsapi/demo            X |  |
|  -----------------------------------------------------  |
-----------------------------------------------------------
| This site is requesting access to your Address Book.    |
|                                                         |
| Select the contacts you would like to share:            |
|                                                         |
| -- Address Book -------------- Select: [all] [none] --- |
|                                                         |
|   Aaron Jones     Angel Smith         ...        ...    |
|   Adam Doe        Angela Wright       ...               |
|                                                         |
| ------------------------------------------------------- |
|    *ABC*  | DEF | GHI | JKL  | MNO | PQRS | TUV | WXYZ  |
| ------------------------------------------------------- |
|                                                         |
| [what is this?]                  || SHARE | CANCEL ||   |
|                                                         |
|---------------------------------------------------------|
|                                                         |
|                                                         |
| API USAGE:                                              |
| ----------                                              |
|                                                         |
|   A. User clicks 'Share' above:                         |
|          Selected Contacts are returned to success      |
|          callback. Only the fields requested in the     |
|          initial find(...) method are returned          |
|          per contact.                                   |
|                                                         |
|   B. User clicks 'Cancel' above:                        |
|          Selected Contacts are not returned. Error      |
|          callback is triggered with permission denied   |
|          notice.                                        |
|                                                         |
|                                                         |
|                                                         |
|                                                         |
|                                                         |
|                                                         |
|                                                         |
-----------------------------------------------------------


- Richard


*********************************
This message and any attachments (the "message") are confidential and intended solely for the addressees. 
Any unauthorised use or dissemination is prohibited.
Messages are susceptible to alteration. 
France Telecom Group shall not be liable for the message if altered, changed or falsified.
If you are not the intended addressee of this message, please cancel it immediately and inform the sender.
********************************

Received on Friday, 19 February 2010 18:00:01 UTC