Home > Store

Developer's Guide to Social Programming: Building Social Context Using Facebook, Google Friend Connect, and the Twitter API, The

Register your product to gain access to bonus material or receive a coupon.

Developer's Guide to Social Programming: Building Social Context Using Facebook, Google Friend Connect, and the Twitter API, The


  • Sorry, this book is no longer in print.
Not for Sale


  • Copyright 2011
  • Dimensions: 7" x 9"
  • Pages: 336
  • Edition: 1st
  • Book
  • ISBN-10: 0-321-68077-4
  • ISBN-13: 978-0-321-68077-8

In The Developer’s Guide to Social Programming, Mark Hawker shows developers how to build applications that integrate with the major social networking sites. Unlike competitive books that focus on a single social media platform, this book covers all three leading platforms: Facebook, OpenSocial, and Twitter. Hawker identifies the characteristics of superior, highly engaging social media applications, and shows how to use the Facebook platform, Google Friend Connect, and the Twitter API to create them.

You’ll find practical solutions and code for addressing many common social programming challenges, from site registration to search, blog commenting to creating location-based applications. Hawker concludes by walking you through building a complete, integrated social application: one that works seamlessly across all leading platforms, and draws on powerful features from each. Coverage includes

  • Working with the Twitter API, including the Search API, Lists API, and Retweets API
  • Authenticating users with Twitter OAuth
  • Mastering the Facebook API, FQL, and XFBML
  • Utilizing the Facebook JavaScript Library for creating dynamic content, and animation
  • Exploring the Google Friend Connect JavaScript API, and integrating with the OpenSocial API
  • Using Facebook’s tools for sharing, social commenting, stream publishing, and live conversation
  • Using the PHP OpenSocial Client Library with Google Friend Connect
  • Creating, testing, and submitting Google Friend Connect gadgets

Sample Content

Online Sample Chapter

The Developer's Guide to Social Programming: Application Discovery, Tabbed Navigation, and the Facebook JavaScript Library

Sample Pages

Download the sample pages (includes Chapter 8 and Index)

Table of Contents

I: Twitter

1 Working with the Twitter API 1

Twitter API Essentials 1

Twitter API Methods 3

Twitter API Parameters 6

Twitter API Return Formats 10

Accessing the Twitter API 11

cURL 12

Twitter-async 14

Twitter API Rate Limiting 17

Twitter API Error Handling 18

Summary 19

2 Diving Into the Twitter API Methods 21

Twitter API Methods 21

User Objects 23

Status Objects 26

Direct Message Objects 28

Saved Search Objects 29

ID Objects 30

Relationship Objects 31

Response Objects 32

Hash Objects 33

Twitter Search API 34

Introducing the Atom Syndication Format 34

Twitter Search API Methods 38

Summary 43

3 Authentication with Twitter OAuth 45

Introducing Twitter OAuth 45

OAuth Benefits 46

OAuth Definitions 46

Implementing Twitter OAuth 48

Twitter OAuth Workflow 48

Test Tube: A Sample Twitter Application 50

Summary 59

4 Extending the Twitter API: Retweets, Lists,

and Location 61

Extending Twitter’s Core Functionality 61

Retweet API 62

Lists API 64

Geolocation API 68

Twitter Community Evolution 71

Platform Translations 71

Spam Reporting 72

Future Directions 74

Summary 76

II: Facebook Platform

5 An Overview of Facebook Platform Website

Integration 77

Facebook Platform for Developers 77

Facebook Platform 78

Registering a Facebook Application 79

Referencing a Facebook Platform Application 81

Facebook API, FQL, and XFBML 84

Facebook API and FQL 84


Summary 98

6 Registration, Authentication, and Translations with Facebook 99

User Authorization and Authentication 99

Logging In and Detecting Facebook Status 101

Logging Out, Disconnecting, and Reclaiming

Accounts 107

Connecting and Inviting Friends 109

Translations for Facebook 111

Preparing Your Application and Registering Text 111

Administering and Accessing Translations 113

Summary 114

7 Using Facebook for Sharing, Commenting, and Stream Publishing 115

Content-Sharing and Live Conversation 115

Facebook Share 116

Facebook Widgets 118

Social Commenting and Stream Publishing 120

Comments Box 120

Open Stream API 123

Summary 135

8 Application Discovery, Tabbed Navigation, and the Facebook JavaScript Library 137

Application Dashboards and Counters 138

News and Activity Streams 139

Games and Applications Counters 143

Navigating and Showcasing Your Application

Using Tabs 145

Configuring and Installing an Application Tab 146

Extending an Application Tab 149

Dynamic Content and the Facebook

JavaScript (FBJS) Library 157

Facebook Animation Library 157

Facebook Dialogs 160

Handling Events with an Event Listener 162

Summary 164

III: Google Friend Connect

9 An Overview of Google Friend Connect 165

Components of Google Friend Connect 165

Google Friend Connect Gadgets 166

Google Friend Connect JavaScript API 167

Server-Side Integration 167

Google Friend Connect Plug-ins 168

Using the Google Friend Connect JavaScript API 169

Installing and Configuring the JavaScript Library 169

Working with Google Friend Connect Data 171

An Overview of the OpenSocial API 173

OpenSocial API Methods 173

The DataRequest Object 174

Fetching People and Profiles 176

Fetching and Updating Activities 177

Fetching and Updating Persistence 178

Color Picker: A Google Friend Connect Application 181

Summary 191

10 Server-Side Authentication and OpenSocial Integration 193

Server-Side OpenSocial Protocols and Authentication Methods 193

Google Friend Connect Authentication Methods 194

OpenSocial Client Libraries 196

Using the PHP OpenSocial Client Library with Google Friend Connect 197

Google Friend Connect Authentication Workflow 197

Setting Up a Server-Side Application 198

OpenSocial Data Extraction Principles 201

Summary 207

11 Developing OpenSocial Gadgets with Google Friend Connect 209

An Overview of Google Gadgets 209

Anatomy of an OpenSocial Google Gadget 210

OpenSocial v0.9 Specification 214

Advanced OpenSocial Gadget Development 217

Creating a Google Gadget 222

Color Picker, Revisited 222

Testing, Tracking, and Directory Submission 230

Summary 233

IV: Putting It All Together

12 Building a Microblog Tool Using CodeIgniter 235

An Overview of CodeIgniter 235

The Model-View-Controller Architectural Design 236

Installing, Configuring, and Exploring CodeIgniter 237

CodeIgniter Libraries 240

CodeIgniter Helpers 245

Building the Basic Sprog Application 246

Stage 1: Creating the Registration, Login, and Home Pages 247

Stage 2: Extending the Sprog Application with Updates, Comments, and Likes 257

Summary 266

13 Integrating Twitter, Facebook, and Google Friend Connect 267

Implementing Twitter Functionality 267

Setting Up Twitter and Twitter-async Support 268

Stage 3: Extending the Sprog Application with Twitter Functionality 270

Updating a User’s Twitter Account 276

Implementing Facebook Functionality 279

Registering a Facebook Application and Adding Facebook Support 279

Stage 4: Extending the Sprog Application with Facebook Functionality 281

Implementing Google Friend Connect Functionality 292

Registering and Adding Google Friend Connect Support 292

Stage 5: Extending the Sprog Application with Google Friend Connect Functionality 294

Summary 301

Index 303


Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020