Access to other contacts groups information - google-people-api

From Google Contacts web interface you can edit a contact and include her in several groups/tags. Then if you decide to "Hide from contacts", the contact will not be in My contacts anymore, but she still exists in Other contacts, and also you can open her and see the groups.
However, People API don't let to know the groups of Other contacts, since you can only retrieve names , emailsAddresses and phoneNumbers.
Is there any workaround for this?

Ok, I figured out that Other contacts have the resourceName in the form otherContacts/<contact-id>, but if you change it to people/<contact-id> (keeping the same contact-id) you can retrieve all the other contact fields with People.People.get()

Related

Is it possible to delete Google Other Contacts via Apps Script?

Scenario
I'm a Google Workspace for Education admin. Every year we rename students' group names, but not their email addresses (ie '1st class' chimps#mydomain.edu becomes '2nd class' chimps#mydomain.edu)
when teachers search for groups (in Gmail, Classroom, etc.), autocompletion shows both the old and the new name: this is confusing, although groups and members are ok
this happens because on every first interaction with the group, user's Contacts app automatically save it in Other contacts; at new year's change, a new Other contact is added (not updating the previous one)
Long solution
Every teacher open Contacts > Other contacts and manually deletes the 'old groups', every new year
What I would
on new year beginning, a script that searches for Other contacts and deletes every students group if found (both a script that perform this on every user with domain-wide authority delegation to service account, or a web app that every teachers runs as himself would be ok); so no more old autocompletion, and new ones recreated at next interaction
I'm able to write down the script by myself, but I can't solve the followings
The problem
People API methods don't seem to support this in any way
People.People.deleteContacts only works on Contacts, but not on Other Contacts
People.OtherContacts methods seem to be readonly
tried to override this using People.OtherContacts.copyOtherContactToMyContactsGroup, and then deleting the contact - not working, the method creates a copy of the Other Contact, it seems not to be moving it from Other Contacts to Contacts
but if I try this last thing from Contacts web app, I can add the Other Contact to Contacts, and this operation moves (not copies) the contact!
so:
am I missing anything that could do what I need via Apps script?
is there a way to replicate this last behavior (moving from Other contacts to Contacts, instead of creating a copy) in Apps script?
thank you in advance
As mentioned in the documentation, you are only able to Read, Copy, and Search "Other contacts".
You can create a Feature Request on Google's Issue tracker to ask for the contact to be editable.

How to check if user is a member of facebook group using Facebook-Api?

Is it possible to get the following information using Facebook Api:
Does the user belong to a specific group?
Has the user posted a certain news on their personal page?
If so, which methods should be used and which permissions will be required? Thanks in advance
Does the user belong to a specific group?
Theoretically via https://developers.facebook.com/docs/graph-api/reference/user/groups/ - but not sure what permissions that would actually need; docs say, “Returns an empty data set if the User is not a member of a Group, or has not granted the app any Group-level permissions.”, but the only permissions left with “group” in their name currently are groups_access_member_info and publish_to_groups - you’d have to test if either of those work for this purpose.
Has the user posted a certain news on their personal page?
You can only go through their posts, and then look at the content to see if it matches what you are looking for; there is no way to search for specific keywords, links or anything like that. Requires permission from the user to access their posts of course.
(But if you think of using that to force users to post a certain thing to get access to any content, or reward them in any way for posting something specific, please be aware that that is absolutely not allowed. https://developers.facebook.com/docs/apps/examples-platform-policy-4.5)

Difference between "link" and "website" fields for Likes

For the past few months I've been using the "link" field present in data returned for a Like in order to determine whether the Open Graph object being liked is part of my application. For all that time the link field contained the og:url value for the object being liked. Now the link field contains a URL for a Facebook page that is automatically created for the object being liked. I've found that sometimes the "website" field contains the og:url value for the object but sometimes the website field is not returned (even when explicitly requested).
Is anyone else experiencing this issue? Did I miss an announcement from Facebook about how they are completely changing the meaning of these fields? Am I taking crazy pills? Is this just a symptom of the many current bugs surrounding like/send functionality right now? I wanted to throw this out to the community before filing a bug report.
Open Graph Protocol
Page Administration
To administer your page, you need to associate it with either your Facebook account or your Facebook Platform application. It is valid to associate your page with both user accounts and a Facebook Platform Application.
To associate the page with your Facebook account, add the additional property fb:admins to your page with a comma-separated list of the user IDs or usernames of the Facebook accounts who own the page, e.g.:
<meta property="fb:admins" content="USER_ID1,USER_ID2"/>
Each listed user must click Like on the URL to be approved as an admin. This is to prevent users being made admins without their consent.
So I think using the site url depends on the admin users liked the page or not.

Should meta tag fb:admins include the app:id number as well?

I developed an application which produces many open graph instances. Each of these instances has a like button and a connect forum.
In my meta I specify my app:id and fb knows I am an admin for every forum. I can store the facebook ID of each of the open graph instances (my customers) and set app:admins as a meta tag.
If I set app:admins, do I need to include my own ID? Will FB still know I own the app and have admin rights if I don't include my own ID? I would prefer not to have to add my own ID to each og instance.
In initial testing I found that og didn't seem to work for me if I used both app:id and app:admins meta tags but I was not able to thoroughly test it before I gave up and just went with app:id.
For what you want you should just use the fb:app_id in your Open Graph tags. Any admins can be added as admins of your app in the Dev App. You could also have a separate app for each customer.

email id of user from new facebook API

I have worked earlier on facebook API. I successfully used it and fetched all friend lists with their email ids. I was also able to get user email id who logged in through facebook API.
Now in gap of 7-8 months I found that faceAPI development section has been changed . New one is something different.
And now I am facing problem to get email id after user login at facebook.Yet all other details are coming like user name .user id and location except email id.
Old script is also not working with me. Could you help me to get email id of user who get login by facebook at my website.
Thanks for your cooperation.
No one will do your homework (upgrade the code for you)
Read the most current documentation
Accessing users e-mails require a special permission email
Users may choose not sharing their direct e-mail with you
You didn't say what technology you are using, but you can check the PHP-SDK example page to get started.
Direct Access Method:
Log into Facebook under your name. If you need an "Access Token", Click on the Extended Permissions and click the "read_friendlist" check box to get your Access Token and then
submit your query. You may need to "Allow" access, so just follow the prompts given.
Voila! You now have the usernames for everyone on your Friends List. The "username" parameter in the query will give you the contact email "message to that person" and you append #facebook.com and send them a message. Very simple.
http://developers.facebook.com/tools/explorer?fql=SELECT%20username%20FROM%20user%20WHERE%20uid%20IN%20%28SELECT%20uid2%20FROM%20friend%20WHERE%20uid1%20%3D%20me%28%29%29%20ORDER%20BY%20name
I had been using the import function in Yahoo Mail but now it has been limited to the first 50 names on your friends list. Where I work, they have over 6,000 friends between the two pages. This is a very simple solution to my problem. And now I can write a very small PHP sendmail program and send EVERYONE on the friends list an email message that goes directly to their messages. No more viewing page sources or manually doing this.
I can create a special email list on IFanz that will handle all dups, even if I repeat this process on a monthly basis to acquire new emails.
-SAB