Retrieve Klout score using Email Address - facebook

I'm trying to find a way to lookup a Klout score using either an email address or a facebookID. Looking at the API documentation for Klout (http://developer.klout.com/io-docs) it looks like it's possible to do this with just about everything else except facebook or email.
Am I missing something? I would have expected getting a klout score from an email address would be fairly standard.

We don't offer FacebookID because Facebook's TOS doesn't allow two 3rd party developers to transfer Facebook IDs between eachother.
We don't offer email addresses to respect user's privacy, and it would only apply to a registered userbase.
There are outside companies that provide email to social identifier translation, which may enable you to get at this data, but it's not something we're looking to provide directly in the near future.

Related

API for looking up Gmail user's public full name?

Is there an API to look up the same information that I can get from Gmail if I type someone's email address into Gmail's search bar and hit search? For most Gmail addresses, this shows me the person's full name.
I ask for people's email address when they sign up on my website, but not for their names. I'd like to add a personal greeting to the emails that I send out. Note that people have NOT signed up using Google+.
You're looking for the new People API.

Is it possible to check if an email is confirmed on Facebook?

Update
This was reported to Facebook via https://www.facebook.com/whitehat/report/ on Dec 16th 2013 and Facebook responded on Dec 17th that the bug has long since been fixed.
I have retested this with my Facebook account (that I still haven't verified the email address on) and when using the Grap API Explorer tool it is not possible to get the email address of this account using the Graph API or using a FQL query.
Conclusion: The email address you get from Facebook using the Graph API or a FQL query is a verified email. If an account hasn't verified it's email yet it's not possible to get it.
Original Post
I am making a web app with SSO that is offering the user to sign in with either Google or Facebook. I would like users who have both types of accounts to show up as the same user in my system regardless of which identity they log in with. To achieve this I'm thinking of using the email address as the identifier to know if I should create a new account or if the user already exists.
To not introduce any security problems I must know that the email address is verified and actually belongs to the user. For Google the userinfo API can tell me if an email is verified or not, so there's no problem here. But I can not find anything like this in the Facebook Graph API.
Is it possible to know if an email address is confirmed on Facebook?
I know that there is a verified field, but that only tells if the account is verified and not the email address.
At first it looked like you are only able to use the Graph API for accounts where the email address has been confirmed. If the address wasn't confirmed I just got an error telling me that I had to confirm the email address first before being able to sign in to any third party site.
However this does not seem to be true for all accounts. In some cases it's possible to get accesses to all parts of Facebook even if you don't have a confirmed email address. One example of this is when you sign up with a #myopera.com mail address.
When you sign up to Facebook with a #myopera.com email address you get a message that your account has been temporarily locked as soon as you submit the sign up form. To continue you need to provide your phone number to verify your account and to "keep Facebook safe and free from spam" (sorry for the Swedish in the screenshot, this was before I could get into Facebook and change language to English):
When you provide your phone number you are logged in and Facebook doesn't nag you any further about that you have to verify your email address.
The only place where you can see that your email address is not yet verified is on the settings page:
The Mobile Settings that is usually not accessible before you have verified your email address is available and lists the phone number entered during sign up:
In addition to this it is also possible to log in to third party sites with an unconfirmed email address:
When I connect to the graph api with this user I can get the unconfirmed email address and the verified field returns true as expected since I have verified the account by adding a phone number. So obviously I can't trust that the email address I get from Facebook really belongs to the user that has the Facebook account.
Is there any other way of knowing if the email address is verified or not or do I have to verify it myself if I want to use it for identifying the user?
I was looking for an official Facebook statement regarding this issue and finally i found this: https://developers.facebook.com/docs/facebook-login/multiple-providers#postfb1, which clearly says that developer should not rely on the fact that email address is verified.
I've never used it, but you may be able to check with a FQL query of the user.email_hashes: http://developers.facebook.com/docs/reference/fql/user

Email address via google places API

At the moment it is only possible to display company address and phone number through google places. Is there anyway the company Email address can be obtained even if its not displayed through the google places api or any other google api.
If not do you think this is on the roadmap for google places API
As mentioned on the Google Issue Tracker, this is not possible and their are no plans to offer email address through the Places API because it would make it too easy to scrape email addresses for the purposes of spamming companies concerned.

Tracking email responses

What is the best way of tracking responses for email campaigns? I was thinking on adding something to the reply-to field of the email (for example luqita+campaigns#stackoverflow.com), but I'm not sure if there is something more neat that could avoid this?
I thought about headers too, but it's important to note that the address luqita#stackoverflow.com would send many different campaigns, and the 'in-reply-to' header info would not be useful then to differentiate (while using luqita+campaign1 or luqita+campaign2 could)
What can I do?
So you want to be able to execute some logic when someone replies to an email you have sent through SendGrid? If you have access to change the MX record of the domain of the email address at which you want to receive the replies, you could use SG's Parse API to get a POST request to a script whenever email is receive at the address.
I think you would indeed have to set a magic reply-to address for each campaign. This seems like a perfectly fine solution; it's also how SG itself tracks bounces - it sets the return-path to something like bounces+{attempted-recipient-email}#sendgrid.com. Then examine the 'to' parameter of the POST notification you receive to know which campaign the reply is associated with.
When you say "tracking responses", do you mean that you expect users will reply to the Email, or do you mean that they'll click on a link in the Email and interact with a web site?
SendGrid obviously offers click tracking and open tracking, and you can set up to 10 different categories for tracking campaign stats and see delivery/bounces/opens/clicks/etc based on those categories. They also have a Google Analytics plugin that can feed back some analytics data to Google. And as #LinusR mentioned in his answer, the SendGrid Parse API can be set up in a way that reply Emails can get parsed and posted back to your site.
If the user will be interacting with your web site, you can use the "unique args" setup at SendGrid to set a unique string/hash to append to any URLs that can help identify a particular user, campaign, or whatever else you want to track.

Getting Yahoo contact names and email addresses using YQL

I'm trying to build a web application in which users can invite their friends by using their email accounts (just like facebook). I use OAuth so that users don't need to enter password in my app. The problem is that I cannot figure out what is the correct YQL query to fetch contact names and email addresses from Yahoo social tables, and achieve the same result with facebook's Find Friends feature.
At first I used this:
SELECT * FROM social.contacts(0, 500) WHERE guid=me
With this query I hope I can get all contacts of the current logged in user, at once. But after parsing and selecting only records which have email field, the result list is far less than when I'm using facebook's Find Friends. I guess facebook does not only using Contacts tables, but also Profile tables, as I see it in the Yahoo authorization page when granting access permission to my private data.
So what is the correct YQL query to get all contact names and email addresses, using these two tables ?
After trying some tests, I discovered that when I import email addresses from my Yahoo contacts, Facebook automatically guesses the contact's email address in case that contact does not have an email field, by appending #yahoo.com to its yahooid field. As I see, this is totally wrong. Because with a yahooid, say "john123", the associated email may have an international domain like john123#yahoo.co.uk, john123#yahoo.com.vn etc.
I have a friend in my Yahoo contacts list. He has a yahooid which associates with a #yahoo.com.vn email address. Before importing my Yahoo contacts into Facebook, I made sure that there is no email field in his contact entry, just a name and a yahooid field. After importing into Facebook, Facebook determines my friend's email address as a #yahoo.com email. Of course the Facebook invitation mail never reach him.
And so, the answer to my question is: there is nothing wrong with my YQL. Facebook can fetch more email addresses than I do, but many of them are incorrect.