Hi James,

There is a difference between the user's contacts and the domain level
ones (Shared Contacts), here is an explanation:
http://code.google.com/apis/apps/faq.html#sharedcontactsexplained

To display the information like in the Gmail's UI you can can get all
the groups for a user and then use the group's IDs to get the contacts
for each group using the group query parameter, for example:
http://www.google.com/m8/feeds/contacts/user%40gmail.com/full/?group=http%3A%2F%2Fwww.google.com%2Fm8%2Ffeeds%2Fgroups%2Fuser%40gmail.com%2Fbase%2F6

Cheers,
Julian

On Dec 2, 2:30 am, James <[email protected]> wrote:
> My company is new to Google Apps and we would like to publish a web
> page on our intranet that will display a list of all the groups and
> the users that are in that group.  I know that there are example pages
> on Google's code site, but I am still a little confused.  Just to
> start we decided to do some basic JavaScript code that would pull the
> domain's contacts feed and output it to the page.  When I log in I can
> see my groups and the contacts under the group.  It prints out the
> list of groups and email address but not in the correct order.  I
> can't figure that out.
>
> If I change the feed from default to our domain (example.com) I get an
> admin priv message.  I expected that since I am not an admin.  I had
> my boss (who is an admin) log in from his computer, but it doesn't
> seem to work.  Basically I check to see if the user is logged in and
> display a message if they are not, and that is all my boss gets even
> though it goes through the authentication.
>
> 1) What could be causing these issues?
> 2) What is the best method of achieving the desired groups and email
> lists web page but would also take the least amount of learning
> curve?  I was thinking probably Protocol.
>
> Any help or advice would be greatly appreciated.
>
> I have included my code below:
> =====CODE=====
> /* Loads the Google Data JavaScript client library */
> google.load('gdata', '1.x');
> google.setOnLoadCallback(initFunc);
>
> var contactsService;
> var scope = 'http://www.google.com/m8/feeds';
>
> function logMeIn() {
>         var token = google.accounts.user.login(scope);
>         doGetInfo(scope);
>
> }
>
> /* If this is not called then the cookie is stored for 2 years.
>         Also, it is retained across browser sessions */
> function logMeOut(){
>         google.accounts.user.logout();
>
> }
>
> function handleInfo(data) {
>     var response = eval(data.currentTarget.responseText);
>
>     alert('Target: ' + response.Target + "\n" +
>           'Scope: ' + response.Scope + "\n" +
>           'Secure: ' + response.Secure);
>
> }
>
> function doGetInfo(scope) {
>         if (google.accounts.user.checkLogin(scope)) {
>                 google.accounts.user.getInfo(handleInfo);
>         }
>
> }
>
> function setupContactsService() {
>         contactsService = new google.gdata.contacts.ContactsService('my-
> contacts451');
>
> }
>
> function initFunc() {
>         setupContactsService();
>         if (google.accounts.user.checkLogin(scope)) {
>                         getMyData();
>         } else {
>                         var message = "You are not logged in! Click the Login 
> button to get
> your contacts.";
>                         var groupsDiv = 
> document.getElementById('contact_groups');
>                         
> groupsDiv.appendChild(document.createTextNode(message));
>         }
>
> }
>
> function getMyData() {
>         var output = '';
>         // The feed URI that is used for retrieving contact groups
>         var groupFeedUri = 'http://www.google.com/m8/feeds/groups/default/
> full';
>
>         // The feed URI that is used for retrieving contacts
>         var contactFeedUri = 'http://www.google.com/m8/feeds/contacts/default/
> full';
>
>         // callback method to be invoked when getContactGroupFeed() returns
> data
>         var callback = function(result) {
>
>                 // An array of contact group entries
>                 var entries = result.feed.entry;
>
>                 var groupsDiv = document.getElementById('contact_groups');
>
>                 var newGroupList = document.createElement('ul');
>                 newGroupList.id = 'GROUPS';
>                 groupsDiv.appendChild(newGroupList);
>                 // Retrieve the first entry of the contact groups array
>                 for (var g=0; g < entries.length; g++) {
>
>                         var groupEntry = entries[g];
>                         var groupTitle = groupEntry.getTitle().getText();
>                         var groupId = groupEntry.getId().getValue();
>
>                         // Query for all the contacts entry with this contact 
> group
>                         var query = new 
> google.gdata.contacts.ContactQuery(contactFeedUri);
>
>                         // Use query parameter to set the group ID
>                         query.setParam('group', groupId);
>
>                         var groupItem = document.createElement('li');
>                         groupItem.id = 'GROUP_' + groupId;
>                         
> groupItem.appendChild(document.createTextNode(groupTitle));
>                         newGroupList.appendChild(groupItem);
>
>                         // callback method to be invoked when 
> getContactFeed() returns data
>                         var printGroupMembers = function(result) {
>
>                                 var newContactList = 
> document.createElement('ul');
>                                 newContactList.id = 'CONTACT_LIST_' + g;
>                                 groupItem.appendChild(newContactList);
>
>                                 // An Array of contact entries
>                                 var entries = result.feed.entry;
>
>                                 for (var i = 0; i < entries.length; i++) {
>                                         var contactEntry = entries[i];
>                                         var emailAddresses = 
> contactEntry.getEmailAddresses();
>                                         for (var j = 0; j < 
> emailAddresses.length; j++) {
>                                                 var emailAddress = 
> emailAddresses[j].getAddress();
>                                                 var contactItem = 
> document.createElement('li');
>                                                 contactItem.id = 
> 'CONTACT_EMAIL_' + j;
>                                                 
> contactItem.appendChild(document.createTextNode(emailAddress));
>                                                 
> newContactList.appendChild(contactItem);
>                                         }
>                                 }
>                         }
>
>                         // Submit the request using the contacts service 
> object
>                         contactsService.getContactFeed(query, 
> printGroupMembers,
> handleError);
>                 }
>         }
>
>         if (output){
>                 alert(output);
>         }
>
>         // Error handler
>         var handleError = function(error) {
>                 alert('Error! ' + error);
>         }
>
>         // Submit the request using the contacts service object
>         contactsService.getContactGroupFeed(groupFeedUri, callback,
> handleError);}
>
> =====END=CODE=====

--

You received this message because you are subscribed to the Google Groups 
"Google Contacts API" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-contacts-api?hl=en.


Reply via email to