facebook api Archives - Stay N Alive

Facebook Quietly Launches Ads API for ALL Developers

8488c-screen2bshot2b2015-03-262bat2b1-53-342bpm-2274516

Some amazing things have been announced at Facebook’s annual developer conference, F8, going on yesterday and today in San Francisco. From new apps for Facebook Messenger, to a platform for Internet of Things, to one of the most amazing explanations of the value of virtual reality I’ve ever seen, Facebook has by far made up for last year’s F8, which I suggested was a bit uninteresting. But one thing went unannounced that I think bears merit, and I discovered it within their “Developers Garage” here at the conference as I was talking to people working for Facebook at the various booths. That was the launch of Facebook’s advertising API to all developers, making the entire API public.

Up until “recently”, as Facebook reps weren’t able to give me a specific date that it went live, you used to have to apply to access Facebook’s ads API through a very hard-to-find form on the Facebook Developers website. Now, in a very prominent location, Facebook has released a “Marketing APIs” section of their developers website, allowing any developer that needs it to access Insights data, custom audience creation and access, access to a business’s pages and assets, along with the ability to create and access ads on behalf of a business. According to Facebook they released them recently but there is no blog post or official announcement about the release.

To get started with the Facebook Ads API, developers just need to create an app and under “Advanced” within the app settings, set an ad account ID to associate ads with. Then, developers have access to a slew of API calls they can use to retrieve an ad account’s ads, create and modify custom audiences, and even create and target new ads to new audiences in very custom ways. I often use this for my clients to integrate and custom target ads to very specific users that are visiting certain parts of their websites or mobile apps.

Typically, while a developer may be able to code an app like this, they likely won’t know how beneficial this feature can be to a business, which may be why Facebook did not make a big announcement about the feature. Knowing these things can be automated is something critical for marketing organizations to get to know and understand, and one reason I always suggest the more technical elements of marketing orgs visit conferences like F8. These tools Facebook just launched are extremely valuable and can be the key to, with a small update, allowing orgs to have that extra edge against their competitors.

So if you haven’t tried it out yet hop on over to Facebook’s Marketing APIs in their developer documentation and start learning what you can do. To me, this is one of the most valuable and most major announcements to come out of the Facebook F8 developer conference and it wasn’t even announced from the stage. I’m kind of okay with being one of the “few” that knows about it though!

Growth Hacking: How to Target Ads to the Followers of a Public ("Follow") Profile on Facebook

83a00-ad-5893738

I shared earlier on this blog the benefit of using a personal, “Public Profile” on Facebook over a Fan Page on Facebook to personalize the experience and grow your network. I encourage each of my clients to, when they have the choice, choose the public profile over the Fan Page for personalities in the company for the reasons I shared earlier. It personalizes the company better, and I think the opportunities to grow organically are stronger.

There has always been one downside though – you can’t advertise to the followers of public profiles. It turns out there is actually a way to finally advertise to the followers of a traditional profile on Facebook with a “follow” button. It involves just a little Graph API knowledge (see my book to learn!), use of Graph Explorer, and a Facebook Page for your brand that you can use to create the ad. Here’s how you do it – let me know if I can help your company or brand do the same!:

Using Graph API to Get the User’s Followers

The trick involves just a little Graph API (the Facebook developer platform used to get data out of Facebook). To start, open up Graph Explorer from the developers.facebook.com “Tools” section.

8bc28-graphexplorerlink-2860888

Give your user the “user_subscriptions” permission by clicking on the “Get Access Token” button and checking the box under “User Data Permissions”.

b8b9f-graphexplorerpermissions-8202925

Now, type in the following path next to the “GET” drop-down:

jessestay/subscribers?fields=id&limit=5000

50a44-graphexplorerurl-5383750

You can replace “jessestay” with the id of any public user. The limit=5000 lets you traverse through the more subscribers at a time. Hit “Submit”, and a bunch of data will be returned.

Now is the part you need to figure out, and where a little programming knowledge might help (I may upload this as a tool on SocialToo.com at some point if it makes sense). Each page has only 5,000 subscribers listed, but there is a “next” link at the bottom that takes you to the next 5,000 subscribers. Your job is to traverse through this list, follow all the “next” links until there are no more, and extract a list of facebook ids in a text file (csv or txt). You can do this either manually or through an automated script that you create

570bd-graphexplorerclick-4515722

This script took me about 15 minutes to write on my own, so it’s not too difficult a task if you have a little programming knowledge. Of course, this is also a service I provide to my clients so let me know if I can help! Once you have this file, you’re ready for the next step!

Uploading the Followers to Ad Manager

Now that you have your file, you need to upload it to Ad Manager as a “custom audience”. This used to only be available to Facebook’s Power Editor, but it’s now a native piece of the Facebook Ad management experience.

Start by going to http://facebook.com/ads/manage and make sure the account you’re using is selected (for those that might manage multiple accounts like me). On the left is a link that says “Audiences”. Click on that.

Now, click on “Create Audience”. A dialog box will appear – select “Data File” from the dialog box.

34372-customaudiencecreate-2391561

Now name your audience whatever you like, and choose the file you just created in the above section. If it’s a text file that has a Facebook ID on each line of the file it should work. Also, make sure you select “advanced options” and “user ids” so it recognizes your ids as Facebook ids and doesn’t try to read them as email addresses. Click “Create Audience”, and now your custom audience should be created! Pretty quickly you’ll start seeing the number of potential people you can target show up next to the audience stats on this page.

5833b-jessesubscribers-5244005


Creating Your Ad

Now that you’ve created your custom audience out of the user’s subscribers, you just need to create an ad that targets this custom audience. This is where you’ll need an existing Facebook Page for your brand (Not the user themselves – to me Facebook Pages are for brands. Facebook Profiles are for users!) if you want to do a promoted post. If you don’t want to use another Facebook Page you can just do a right-nav ad that targets a URL and that will work too.

Start by creating a promoted post using Ad Manager, or on the Page itself (don’t use the “boost” option!). You can make this visible or invisible to your fans – it’s up to you. Include a link if you like, just text, or whatever you want. Maybe even put the image of that user in the post so it’s recognizable to the fans of that user. Another option is to have your Facebook Fan Page share a post of that user, and then you can promote that!

Then in your targeting options, select the custom audience you just created. You can further refine the audience if you like, should the post be needed to target a specific subgroup of that audience (allowing for much stronger micro-targeting and perhaps even better results for less cost). Set all your bidding options, submit the ad, and now you have an ad targeting all the followers of a specific user on Facebook!

02dfc-ad-5481712

The great thing about this is you don’t have to limit it to subscriptions – it works with any data your user has access to. You can access your friends, your friends’ friends. You can target the attendees of an event you’re going to. Or members of a group you participate in. You also don’t need to limit it to your own user if you’re targeting just followers. Because public profiles are public, you can target the followers of any user that has their profile marked as public!

Just a side-note: I did notice a bug in Facebook’s Graph API that doesn’t return all of the subscribers. I think it excludes subscribers that are subscribing to you through Facebook lists. It will return most though, which makes an ad campaign totally worth it!

So when you think you have to use a Fan Page because you can’t advertise on a public profile, think again! You indeed can target subscribers of public profiles on Facebook, making the use of a public profile even more powerful, and something every brand should consider!

Let me help your brand! These little “Growth Hacks” are the core of our business, and how we excel against other marketers and firms in this space. If you want to get an advantage against your competition that other marketers can’t touch, send an email to jesse@staynalive.com!

Oh, and like what you see here? Did it help your marketing strategy? Please consider sending donations to paypal@staynalive.com (Paypal), or send me Bitcoin!:

Address: 19AdCAbjshRuEFhx4py1Ny7i48s1d6RFi

75668-bitcoin_tip_blog-2670213


Developers: Here’s How You Access #Hashtags in Your Apps

853d6-images-6030473

I showed earlier tonight a way you can access on Facebook.com the stream for any particular hashtag without having to have a link to get to it. I mentioned Facebook would likely release an API for this. Being the idiot that I am I neglected the fact that Facebook already has a search API, and you can start using it right now.

Anyone, developers or not, can do this right now. Go to https://graph.facebook.com/search – add to it the URI variable q, specify a query (in this case your hashtag keyword prefaced by %23, the URI-encoded version of the # sign), and they add “type=post” to the URI string. In laymans terms, here is how it looks:

https://graph.facebook.com/search?q=%23hashtag&type=post

Just take the above query, put it in your browser (or send it in your app via a GET request), and it will return a JSON-encoded string you can parse and use in your apps. For the non-developers out there, that means there will be a bunch of {‘s and }’s and [‘s and ]’s with the list of all the public posts for that particular hashtag. It’s really simple!

The above example uses the hashtag #hashtag – to change it to something else, just replace “hashtag” with your keyword of choice. This one will do #fail:

https://graph.facebook.com/search?q=%23fail&type=post

Try it yourself and let me know if you see any quirks. So start coding my hacker friends! (and start learning if you’re not!)

How is Quora Able to Auto-Like Posts on Facebook?

screen-shot-2011-01-10-at-3-03-27-am-300x137-8191874I’ve been contemplating a way to get Facebook like buttons to work with a brand’s own look and feel, so when you like it on a 3rd party site, it automatically likes the same Page (via Open Graph Protocol) on Facebook.  This would be a User Experience Designer’s dream come true, especially those that I work with in my day job trying to design stuff that works with Facebook.  Today I remembered that there is a site that is doing just that: Quora.  The problem is there is no API method that currently allows Facebook developers to send “likes” to URLs or Pages on Facebook.

Right now on Quora when you click “up” on any answer on Quora, if you’ve associated a Facebook account with your Quora account you have the option, in your settings, to also “like” the page for the answer on Facebook.  Doing so shows a post in the news feed that says something like “so and so likes such and such an answer on Quora”, linking back to the answer on Quora.  The likes, via Facebook’s Graph API also go up with that click.  This auto-posting is probably also helping to contribute to Quora’s massive growth in such a short period of time.

I thought I’d try to hack it to see if I could figure out what Quora is doing.  I’m pretty sure they’re getting special access by Facebook to do it.  Right now when I send a “POST” method call to https://graph.facebook.com/likes, with http://pathtoanyurl.com in a “url” parameter (and a working, offline_mode, access token), I get a message back from Facebook that says, “App must be on whitelist”.

I’m assuming Quora is on a special whitelist for Facebook to be able to auto-like posts via Facebook’s API, something most developers on Facebook Platform aren’t allowed to do.  This would make a lot of sense, considering Quora’s own founders were also some of the original founders of Facebook and most likely have very close ties with the service and its employees.

screen-shot-2011-01-10-at-3-01-20-am1-8832406

Now I just want to know, how can I get this whitelist access?

If you have a better answer, answer here, on Quora of course!

Now You Can "Like" Any Tweet on Twitter.com

As part of Kynetx’s Facebook App contest I wrote a simple browser extension that you can install on Chrome, Internet Explorer, or Firefox, which allows you to, in addition to the “retweet”, “favorite”, and “reply” links you see when you mouse over a Tweet, you can also now “like” the Tweet as well.  What does this do?  It puts it on Facebook, of course!  Here’s me liking one of Jolie O’Dell’s Tweets (she had the most like-worthy Tweet in my stream at the time):

The plugin was very simple to write on Kynetx’s platform – Brad Hintze explains it well over here, but to put it simple, all I had to do is distinguish through a selector where to put the like buttons and put Facebook’s default like button iframe code in where each Tweet is.  With some simple jQuery I could identify the permalink for the Tweet, insert that as the href for the like button, and voila, each like links right back to the Tweet on Twitter.com.  The like shows up in my profile like this:

Of course, there is much more I can do with this – at the moment I’m using Kynetx’s Facebook API to greet you by name and tell you how to use the plugin.  I anticipate also enabling a “post to facebook” checkbox below the status update box in Twitter, and because you’ve authorized your Facebook account through Kynetx you can now cross-post to Facebook, straight from Twitter.com.  Or, what if I wanted to, in my Twitter settings, pull my profile pic from my Facebook profile and upload that to Twitter as my profile pic?  I could use Kynetx’s Facebook API to access the profile picture, then use Kynetx’s Twitter API to upload that pic up to Twitter.  Not just that, but all the changes, written in one single language and written only once, get compiled into Chrome plugins, Firefox plugins, Internet Explorer plugins, as well as Information Cards and bookmarklets anyone can install to completely customize the Twitter.com experience to work with Facebook.  What are some other ways you can see this extended?

If you haven’t tried out Kynetx yet go check it out.  This was very simple to write – you can see the source code I used over on the Kynetx blog.  Feel free to add to it and make your own creations – I’ll just release this all under the GPL, so change away.  Oh, and if you’re not a developer go install the extension and like your favorite Twitter posts!

I’ve uploaded the extensions for IE, Firefox, and Chrome all to this zip file – feel free to download and enjoy!  It’s a work in progress (and mostly a hobby), so please send me your ideas and feedback.

Disclosure: I won a $200 Amazon Gift Certificate for entering this app into Kynetx’s Facebook app contest

Want Your Business in a Dummies Book?

I’m looking for concrete examples of businesses, large and small, that have seen firm success by integrating Facebook either as an application, a Page, or on their own website via Facebook Connect or Facebook Graph API.  If you have analytics and statistics to back up your claim, I’d like to get quotes from you on how Facebook’s API has helped your business.  The best ones I’ll be including in Facebook Application Development for Dummies.

This is a great opportunity for your business or website, as your brand will be promoted, pushed, and shared with an audience of thousands (wouldn’t it be cool if it were millions?) of readers worldwide, in a brand that is recognized in bookstores everywhere.  So if you, or someone you know has a great story to tell about how the Facebook API has helped your business, I’d like to share those case studies with my readers.  The best ones I’d like to also try and share on this blog if you’re okay with it.  Feel free to share them in the comments if you want everyone to see, or send them to jesse@staynalive.com.

Oh, and and not to show preference, but if anyone has any good contacts at Digg – I really want to see if their integration of Facebook Connect has helped.  I think that would be a great example to share – send them my way if you think they might be interested.

This book is a group effort – I hope to include you in many more opportunities like this, so keep reading and subscribing!

Did Google Reinvent the Wheel by Adopting the Protocols They Chose?

In a response to my article here, DeWitt Clinton of Google defined what he deemed the definition of “open” to be.  According to DeWitt, “the first is licensing of the protocols themselves, with respect to who can legally implement them and/or who can legally fork them.”  I argue if this were the case, then why didn’t Google clone and standardize what Facebook is doing, where many, many more developers are already integrating and writing code for?  Facebook itself is part of the Open Web Foundation, and applies the same principles as Google to allowing others to clone the APIs they provide to developers.

DeWitt’s second definition of “open” revolves around, according to DeWitt, “the license by which the data itself is made available. (The Terms and Conditions, so to speak.) The formal definitions are less well established here (thus far!), but it ultimately has to do with who owns the data and what proprietary rights over it are asserted.”  Even Facebook makes clear in its terms that you own your data, and they’re even working to build protocols to enable website owners to host and access this data on their own sites.  Why did Google have to write their own Social Graph API or access lesser-used protocols (such as FOAF or OpenID) when they could, in reality, be standardizing what millions (or more?) of other developers are already utilizing with Facebook Connect and the Facebook APIs to access friend data?  Google could easily duplicate the APIs Facebook has authored (even using the open source libraries Facebook provides for it), and have a full-fledged, “open” social network built from these APIs many developers are already building upon.  I would argue there are/were many more developers writing for Facebook than were developing under the open protocols and standards Google chose to adapt.  I’d like to see some stats if that is not the case.  Granted, even Facebook is giving way to Google to adopt some of these other “open” standards so developers have choice in this matter, even if they were one of the few adopting the other standards.

I still think Google is adopting these standards because it benefits Google, not the user or developer.  If Google wanted to benefit the majority of the audience of developers they would have cloned the already “open” Facebook APIs rather than adopt the much lesser-adopted other protocols they have chosen to go by.  This is a matter of competition, being the “hero”, and a brilliant marketing strategy.  Is Google evil for doing this?  Of course not.  Do I hate Google for this?  Only for the reason that I have to now adapt all the apps I write in Facebook to new “open” APIs Google is choosing to adopt.

IMO, if Google wanted to truly benefit the developer they would have chosen to clone the existing “open” APIs developers were already writing for.  This is a marketing play, plain and simple.  It may have started with geeks not wanting to get into the Facebook worlds, but management agreed because in the end, it benefits Google, not their competitors.  If you don’t think so, you should ask Dave Winer why Google is not implementing RSS or rssCloud instead of Atom and PSHB (I’m completely baffled by that one, too).

Image courtesy http://northerndoctor.com/2009/04/17/re-inventing-the-wheel/

Facebook to Developers: "You Decide"

By the time I hit publish on this 5 other bigger blogs will have probably already covered this, but this deserves some praise.  One reason I love the Facebook Platform is because they really seem to care about API developers.  They do things the “right” way.  For instance, they have a beta site where they always release new bug fixes and features before they go live on the site.  They always release new API features in “sandbox mode” before going live with them.  No other platform releases new features and updates in this manner!  Just today they upped their game even more, giving developers full control over this process by letting developers decide when new API features go live.

The service gives developers a new “Migrations” option in their application settings, enabling them to choose when things go live.  The first one of these they launched has to do with a bug they’ve fixed which formats empty JSON strings correctly.  To enable the feature you just go to your “Migrations” section for your app, and select “on”, and now all empty JSON strings will be formatted in the correct manner.  The power of all of this is that you get to decide when these features go live, but you can start trying them immediately!

Of course, all features will eventually go live, but what this shows is that Facebook is willing to keep developers aware of changes before they go live.  Facebook won’t be launching features into the wild out of the blue like many of their competitors do quite regularly.  Previously, changes would go live, and while they would often show on the beta site, developers had little notice and little time to test them before putting them into production.  These changes would break many apps the minute they went into production.

IMO, this small feature changes the game for many other app platforms.  NO OTHER major app platform does anything like this.  Kudos to the Facebook platform team for continuing to change the game in regards to API development.  Since the Facebook platform launched, they have always been ahead in changes like this.  I can only hope other API platforms can follow suite in giving developers more control like this.  No one likes their applications to break because of simple API changes.

What Buzz Needs to Make a "Sting" in Facebook

44a_13_bee_243x226-8684059There’s a new Buzzword in town that’s “Buzz” lately and as I mentioned earlier, some are already calling things “dead” because of it.  Most of this is due to the size of Google, the masses it can reach, and the overall usefulness of the service.  Personally, I think all the “dead” articles are all a ruse to build the numbers of those praising the service and feeling a need to abandon others, as well as gain favor with the Google team as they see strong potential in the service.  While there’s no argument there’s potential in the service (and I’m even spending more time over there and strongly hope for its success), it is far from a “Facebook killer”.  While I mentioned why before, I feel qualified, and I’d like to spend some time sharing some things it needs to get on level grounds to Facebook.

Buzz Needs a Central Place for all Social Activity

I’ve said this before – Google needs a central place for everything “Social”.  Facebook has grown so well because it has this organization.  I’m still unclear if Google is trying to make Buzz this place, or if Orkut, or another product should be that.  Contacts are not that place – Contacts should be the source of social graph data, but are not social connections.  Social connections can come from much more than just contact data – people search, other peoples’ buzzes, as well as other Social Networks can all be sources for Social Contacts between Buzz (see the need for Facebook import later).

Buzz Needs a Stronger API

One of the reasons Buzz has such strong potential is because of its foundation on open architectures.  There is so much more that can be done however – I’m sure they’re working on some of these, but I’d like to share my thoughts, in hope that if they haven’t been thought of, they can be added.  For instance, currently there is no way for any 3rd party app to gain access to the cool comments architecture Buzz posts get in Gmail.  What if I could get FriendFeed, or even SocialToo e-mails in the same format?  Buzz or Gmail could open an interface to this, perhaps built on top of SMTP (an SMTP header would denote it’s a formatted e-mail), Salmon, and OpenSocial standards, to give developers access to this UI.  The great thing about it – if Buzz sends new Buzz updates in an SMTP-supported format, other e-mail clients could adapt these standards as well.  It would no longer be limited to just Gmail to see these formats.

I think it goes without saying that we need better ways to read, analyze, and discover the data, as well as social graph connections on Buzz.  I’d like to be able to track who’s posting about what, how many likes or how many comments there are for specific posts mentioning specific keywords or links.  I’d like to be able to track who has followed an individual and who has stopped following an individual on Buzz.  I’d like to be able to embed Buzzes on 3rd party sites.  I’d like an FBML-like interface to integrate and customize content right in the Buzz environment.  I’d like RSS for every search I do, along with the ability to share searches and get notifications on new items from those searches (I believe Steve Gillmor calls this “Track”).

Buzz Needs Groups and Events, Deep Integration Into Those Events and Groups

To say just a social stream service is comparable to Facebook would be like saying Notepad is comparable to Windows 7.  It’s just not a fair comparison.  One is a feature of the other.  If Buzz really wants to compete (and I’m not saying they do), they need deep integration into Groups, Events, business Pages, and more.  They need the ability for groups of people to all collaborate around a single event, Buzz around it, share it with their friends via Buzz, RSVP via Buzz and Gmail, etc.  Google Calendar just doesn’t do this yet.

Groups are another key component.  E-mail is too private.  They need to enable “Groups” in Buzz that do more than just Buzz.  They need to enable sharing of photos, events related to that Group, and encourage communication amongst Group members.  They need to put that into a people search enabling you to find old High School friends and acquaintances through them.  Google already has some of the basics for this, but I argue they aren’t yet integrated across Google services yet, and are a bit more private an environment than what Facebook encourages.  The challenge Google will have is maintaining the “public feel” that Facebook groups and events provide, while maintaining the “silo’d feel” Facebook provides at the same time giving people a sense of security.  This will be no easy challenge, and may take a silo’d environment like Orkut to do completely successful.

Buzz Needs Better Privacy Controls

At the heart of most Buzz controversy currently lies their relaxed privacy controls.  Originally they automatically followed people for you, giving others potential access to your private list of contacts.  Your Google contacts were also all visible on your Google profile just by enabling Buzz.  Google has since enabled you to disable this, and has turned the “auto-follow” into more of an “auto-suggest”, but there is still so much more that I can get from Facebook that Google is lacking in regards to Privacy.

For instance, on Facebook, I get to decide how much of my own profile is visible to certain friends.  I get to decide if it’s visible to friends of friends.  I can even go to the extent of selecting specific lists I want to be visible to, and certain other lists of friends (or individual friends) I don’t want it to be visible to.  I can specify specific components of my profile I want visible to those lists.  I can set profile-wide settings that remain protected by the privacy settings I set, as well as specific targeted profile elements that remain protected by these privacy settings.  Facebook gives me complete control over what my friends see and don’t see.  With Google Buzz, not only is it all out in the open, but you’re revealing much more than your social contacts – you’re revealing e-mail addresses and Google account information.  It’s wrong the way Google approached this from the beginning, and I argue, even a little bit evil, whether intended or not.

Buzz Needs Lists

Which brings me to my next point – lists.  Lists have much further ramifications than just privacy settings.  On Facebook, I can click on the “Friends” link on the left-navigation and immediately have access to lists I have organized of my friends.  I can view the posts of just my close family members, or just the posts of the news makers and use it like a news reader.  Or I can look at just the latest comments of all my friends, or even a summarized view of the top posts for the day.  Buzz really needs this to be even remotely useful.  On FriendFeed, I have a list of “Favorites”, which I use most of the time to get the most relevant content from those I actually know, and then I can skim the rest of those I follow occasionally.

On every Social Network I belong, it should not be about giving, but how you receive content.  Each and every Social Network has the responsibility to empower its users to receive content in the way they want to.  Facebook has mastered this (although I argue FriendFeed has done, to an extent, even more than Facebook in this area).  No one should feel the need to unfollow me because I post too much, or post one or two things they don’t like.  They should be able to read the content in the manner they like, and filter out what they don’t like, without the ugly unfollow.  Lists are just one component of this.

Buzz Needs Better Filters

The other part of being able to receive content the way you like is via filters.  Each and every application that interfaces with Facebook has to identify itself.  This enables users to filter based on application if they choose to.  If I don’t want to receive Farmville posts, I just hide everything from Farmville, and I’ll never see another field plowed or beet grown again.  People argue they’re worried integration with Facebook will enable the Farmvilles to gain access, but the thing is, without filters, the Farmvilles will use Buzz regardless, but without Filters you will have no way to stop them.  Facebook has completely mastered this, and I can’t do this on any other service.

In addition to application hiding, I should be able to filter by feed type.  If I don’t want to see someone’s Twitter feed, I should be able to hide just their Twitter feed.  If I want to block all Twitter posts from showing, I should be able to do that.  If I want to hide a user but not unfollow them, I should be able to do that.  I shouldn’t have to worry about making anyone feel bad by unfollowing or blocking them.  I should be able to just control my feed in the way I want, just like I do on Facebook (and to an extent, FriendFeed).

Buzz Needs the Ability to Import my Facebook Contacts

Lastly, in order to compete with Facebook, Buzz needs my Facebook friends.  They’re not going to get those through my Gmail contacts.  Most of my Facebook friends are not in my Gmail Contacts.  The only way they’re going to gain access to my Facebook friends is via the Facebook API.  It’s time for Google to suck it up, work with Facebook, and find ways of integrating my friend list from Facebook into the Google environment.  We’ve waited too long for this with Google Friend Connect, and surely there’s a win-win option for both companies to allow this and work together.  Win-win for them is win-win for the user.

Let’s look at Aardvark (recently purchased by Google), for instance.  If you log into Aardvark with your Facebook login, it will immediately detect who in your Facebook contacts are also on Aardvark, and immediately add them as friends on Aardvark.  The site, Digg.com also does this well – all my Facebook friends are automatically added as Digg friends as they log into Digg through Facebook.  There should be no problem with Buzz following Facebook’s developer terms of service and integrating this into their own environment.  Facebook provides hooks into its APIs for doing this exact thing.

Assuming it agrees with the Facebook developer terms of service, Google could even submit each user’s contacts to Facebook and immediately prompt each user in your contacts list to connect on Facebook.  This would be win-win for both companies, as it would encourage the users of both services to build contacts in each and grow each service.  Considering Youtube and Aardvark have both integrated the Facebook API (Youtube could do much better), I don’t anticipate any issues with them doing this.  I will interpret any lack of Facebook integration as a failure on Google’s part, and Google itself playing politics, not Facebook.  So long as you play by their rules, I’ve never heard of Facebook deny a developer.

I really hope the Buzz team reads this.  I have a lot of experience in the Facebook environment.  I know intimately how Facebook works as an author of 2 books on the subject and writer of a plethora of documentation about Facebook on various sites around the web, as well as a developer of numerous apps on the Facebook API and consultant to many others.  Frankly, as a user and developer, I want to see both companies succeed.  The more Buzz succeeds, the more Facebook will compete and provide a better service.  The more Facebook competes, the more Buzz will compete and provide a better service.  Users win in both scenarios.

If Buzz is really trying to compete with Facebook, these are the things they need to implement to get my attention.

It’s Official, Facebook Releases Their Platform, Open Source and All

Nick O’Neill blogged about it, and Facebook confirmed it officially at the Palo Alto 1 Year Anniversary Developers Garage on Thursday, but Facebook has finally released their platform under a modified version of the Mozilla Public License. The code and announcement can be found here, and includes the full API, a parser for FBML, and more. I will probably be trying to sneak in a little info about this in FBML Essentials if I can beat it to press.

What does this mean for you? Well, first of all, there is a good chance (I have not confirmed this) you’ll now see sites like Myspace and LinkedIn also join sites like Bebo in providing a Facebook-style API. It should be an easy decision for them. This also means you are not stuck porting your Apps over to OpenSocial to get them on those networks, assuming they implement this into their own architecture. Ideally, it will take very few changes to port a Facebook App over to other FbPlatform-enabled sites.

Also, if you are building your own social network, you can now cater to all the Facebook developers out there and bring in the rich API Facebook provides. OpenSocial is great, but you do have to keep in mind it is still in beta – while new, I see no “beta” put in front of this new Facebook Open Platform.

The other thing you should take into account is that because it is Open Source, you can now contribute back to the platform. If you see something in the platform that is strongly needed, you simply have to sign the Contribution Agreement they provide and if they implement your change they’ll even send you a (drum roll please) T-Shirt! (they didn’t say if the T-Shirt was free or not) In reality though, we as developers now have some responsibility to give back to Facebook – that is the essence of Open Source.

I think Facebook just played their cards for Google on this one. Their environment is still closed, but at the very least they are sharing the components that make their closed environment so the world too can get involved. Google now has much stronger pressure to get OpenSocial in order, and in a way that convinces the Facebook platform developers to use OpenSocial instead of the Facebook Open Platform. It’s a race for developers, and I’m afraid Facebook just made the choice for developers to leap to OpenSocial a lot harder.