Table of contents
9
Table of Contents
17
Contributors
21
Preface
21
Who Should Read This Book
22
What’s in This Book?
23
Code Samples
24
Keeping Up with the Facebookers
24
Using Code Examples
24
Safari® Books Online
25
Comments and Questions
25
Thanks!
26
Apologies to Eli
27
Chapter 1. Introducing Facebook Platform
28
1.1 What Exactly Is Facebook Platform?
31
1.2 Skills to Pay the Bills
33
1.3 Facebook Platform Off-Facebook
33
1.4 Facebook Platform Versus Google OpenSocial
33
What Exactly Is OpenSocial?
34
Who’s Going to Win?
35
What Should I Do?
35
1.5 Saddle Up!
37
Chapter 2. Ideation and Strategy
38
2.1 Which Types of Apps Are the Most Popular?
38
Problem
38
Solution
38
Discussion
39
2.2 Which Apps Are Most Popular?
39
Problem
39
Solution
40
Discussion
42
2.3 Test-Driving Ideas with Facebook Polls
42
Problem
42
Solution
44
Discussion
45
2.4 The Winning Formula for Facebook
45
Problem
45
Solution
45
Discussion
45
Try to build an application that is social in nature
46
Clean or vibrant look
46
Seasonal or long-term prospects
46
When to monetize
46
Scalability
46
Branding and appeal
47
2.5 Where’s the Money?
47
Problem
47
Solution
47
Discussion
49
2.6 Google AdSense and Facebook
49
Problem
49
Solution
50
Discussion
50
2.7 Funding Facebook Development
50
Problem
50
Solution
50
Discussion
51
2.8 Facebook Platform Integration Points
51
Problem
51
Solution
51
Discussion
52
2.9 Application Directory
52
Problem
52
Solution
52
Discussion
52
Application icon
54
Application logo
54
Application description
54
Application picture
55
Application categories
55
Measuring About Page success
57
2.10 Navigating the Applications Menu
57
Problem
57
Solution
59
2.11 Facebook Canvas Pages
59
Problem
59
Solution
60
Discussion
60
2.12 Think Outside the Profile Box
60
Problem
60
Solution
61
Discussion
62
2.13 Info Sections
62
Problem
62
Solution
62
Discussion
63
2.14 News Feed and Mini-Feed
63
Problem
63
Solution
64
Discussion
69
2.15 Noteworthy Notifications
69
Problem
69
Solution
69
Discussion
69
2.16 Understanding Allocations
69
Problem
70
Solution
70
Discussion
71
2.17 Attachments and the Publisher
71
Problem
71
Solution
73
Discussion
73
2.18 Requests
73
Problem
73
Solution and Discussion
73
2.19 Tabs
73
Problem
74
Solution
74
Discussion
74
2.20 Guiding Principles of App Strategy
74
Problem
74
Solution
75
Discussion
76
2.21 Community Gardening
76
Problem
76
Solution
76
Discussion
77
2.22 Finding Inspiration
77
Problem
77
Solution
77
Discussion
81
Chapter 3. Hello World
81
3.1 Installing the Facebook Developer App
81
Problem
81
Solution
81
Discussion
83
3.2 Setting Up a New App
83
Problem
84
Solution
85
Discussion
85
Base Options
88
Internationalization Options
88
Installation Options
91
Integration Points
92
3.3 Hello World
92
Problem
92
Solution
93
Discussion
93
3.4 Installing Your App: It’s All About the About Page
93
Problem
93
Solution
96
Discussion
97
Chapter 4. Architecture and Design
97
4.1 Under the Hood: How Facebook Apps Work
97
Problem
97
Solution
98
Discussion
99
4.2 Architecting for the Future: Open Web Apps
99
Problem
99
Solution
100
Discussion
101
4.3 Build Now, Scale Later: Getting Real
101
Problem
101
Solution
101
Discussion
103
4.4 Scalability
103
Problem
103
Solution
103
Discussion
103
Monitoring software
103
Application source code
104
Database
104
Hardware/OS/software utilities
104
User interface/support systems
104
4.5 Language Selection As Architecture
104
Problem
105
Solution
105
Discussion
106
4.6 Cross-Language Development with Facebook Thrift
106
Problem
106
Solution
106
Discussion
108
4.7 The Database Is Dead! Long Live memcached!
108
Problem
108
Solution
108
Discussion
109
4.8 Advanced Caching with Nginx and memcached
109
Problem
109
Solution
109
Discussion
110
4.9 Standing on the Shoulders of Giants: Hosting with Amazon Web Services
110
Problem
111
Solution
111
Discussion
111
4.10 Integrating Drupal and Facebook
111
Problem
111
Solution
111
Discussion
112
4.11 App Design Process
112
Problem
112
Solution
113
Discussion
113
Know thy user
114
Gooooooooooooaaaaaaaaaal!
114
Frame the problem
116
Making a mockery
117
Build it!
117
4.12 The Facebook User Interface Widgets
117
Problem
117
Solution
117
Discussion
117
Simple UI widgets
119
UI conventions
121
4.13 Facebook’s Global User Interface
121
Problem
121
Solution
122
Discussion
125
Chapter 5. Setting Up Your Environment
125
5.1 Creating a Test Account
125
Problem
125
Solution
126
Discussion
127
5.2 Facebook Clients
127
Problem
127
Solution
127
Discussion
127
5.3 JavaScript Client Library
127
Problem
127
Solution
128
Discussion
129
5.4 Starting Out in PHP
129
Problem
130
Solution
130
Discussion
132
5.5 Demo Applications
132
Problem
132
Solution and Discussion
132
5.6 Developer Documentation
132
Problem
133
Solution
133
Discussion
133
5.7 Test Consoles
133
Problem
133
Solution
134
Discussion
134
5.8 Developer Forums: Help!
134
Problem
134
Solution
134
Discussion
135
5.9 Facebook Bug Squashing
135
Problem
135
Solution
135
Discussion
135
5.10 Facebook Developer Software Toolbox
135
Problem
135
Solution
136
Discussion
136
Mac OS X
137
Windows
137
Linux
137
Eclipse
138
5.11 Weekly Facebook Pushes
138
Problem
138
Solution
138
Discussion
138
5.12 Hosting
138
Problem
138
Solution
139
Discussion
139
Joyent Facebook developers program
140
Amazon Web Services (AWS)
140
5.13 Amazonian Backends: Simple Storage Solution
140
Problem
141
Solution
141
Discussion
141
Setting up your AWS account
142
Getting foxy with S3Fox
144
Buckets of files
146
Interacting with S3’s API
146
5.14 Amazonian Backends: Hosting on Elastic Cloud Computing
146
Problem
146
Solution
147
Discussion
149
5.15 Staying Up-to-Date
149
Problem
149
Solution
150
Discussion
151
Chapter 6. Facebook Markup Language (FBML)
151
6.1 What Is FBML?
151
Problem
151
Solution
152
Discussion
153
6.2 Categories of FBML Tags
153
Problem
153
Solution
154
Discussion
154
6.3 FBML Versions
154
Problem
154
Solution
154
Discussion
155
6.4 A Rose by Any Other Name: Forced Renaming
155
Problem
155
Solution
155
Discussion
156
6.5 Web Standards
156
Problem
157
Solution
157
Discussion
158
Resources
159
6.6 Displaying a User’s Name
159
Problem
159
Solution
159
Discussion
161
6.7 He Said, She Said: Dealing with Pronouns
161
Problem
161
Solution
161
Discussion
162
6.8 Worth a Thousand Words: Profile Pictures
162
Problem
162
Solution
162
Discussion
163
6.9 Linking to Events
163
Problem
163
Solution
163
Discussion
164
6.10 Linking to Groups
164
Problem
164
Solution
164
Discussion
164
6.11 Linking to Networks
164
Problem
164
Solution
164
Discussion
164
6.12 Display Content to Group Members
164
Problem
164
Solution
165
Discussion
165
6.13 Display Content to Network Members
165
Problem
165
Solution
165
Discussion
166
6.14 Displaying Content to App Users
166
Problem
166
Solution
166
Discussion
166
6.15 Displaying Content to Friends
166
Problem
166
Solution
166
Discussion
167
6.16 Displaying/Hiding Content to/from Specific Users
167
Problem
167
Solution
167
Discussion
168
6.17 Displaying Random Content
168
Problem
168
Solution
168
Discussion
169
6.18 Displaying Content to Specific Browsers
169
Problem
169
Solution
169
Discussion
170
6.19 Displaying Your Application’s Name
170
Problem
170
Solution and Discussion
170
6.20 Formatting Relative Time
170
Problem
170
Solution
170
Discussion
171
6.21 Making Content Visible to Some Users in Profile Boxes
171
Problem
171
Solution
172
Discussion
173
6.22 Hiding Private Profile Content
173
Problem
173
Solution
173
Discussion
174
6.23 Hiding Private Photos
174
Problem
174
Solution
174
Discussion
175
6.24 Embedding an iFrame
175
Problem
175
Solution
175
Discussion
176
6.25 Embedding Facebook Photos
176
Problem
176
Solution
176
Discussion
177
6.26 Embedding MP3s
177
Problem
177
Solution
177
Discussion
178
6.27 Embedding Adobe Flash
178
Problem
178
Solution
178
Discussion
180
Enhancing security in your Flash
182
6.28 Embedding Flash Video
182
Problem
182
Solution
183
Discussion
183
6.29 Embedding Microsoft Silverlight
183
Problem
183
Solution
183
Discussion
184
6.30 Wide Versus Narrow Profile Boxes
184
Problem
184
Solution
185
Discussion
185
6.31 Tabling Users
185
Problem
185
Solution
186
Discussion
186
6.32 Page and Box Titles
186
Problem
186
Solution
187
Discussion
188
6.33 Profile Box Subtitles
188
Problem
188
Solution
188
Discussion
189
6.34 Forms the Facebook Way
189
Problem
189
Solution
190
Discussion
192
fb:editor
193
fb:editor-custom
193
fb:editor-text
193
fb:editor-textarea
194
fb:editor-time
194
fb:editor-month
194
fb:editor-date
195
fb:editor-button
195
6.35 Heads Up! Heading Your App Pages
195
Problem
195
Solution
196
Discussion
196
6.36 Dashing Dashboards: Heading Your App Pages
196
Problem
196
Solution
197
Discussion
199
6.37 Tabs Ahoy!
199
Problem
199
Solution
200
Discussion
200
6.38 Media Headers
200
Problem
200
Solution
201
Discussion
201
6.39 Errors, Explanation, and Success: Displaying Messages (Oh My!)
201
Problem
201
Solution
202
Discussion
203
6.40 Discussion Boards Made Simple
203
Problem
203
Solution
203
Discussion
204
6.41 Giving Users a Voice: Wall Posts in Your App
204
Problem
204
Solution
205
Discussion
207
6.42 Adding Profile Boxes and Info Sections
207
Problem
207
Solution
207
Discussion
209
6.43 Prompting for Extended Permissions
209
Problem
209
Solution
210
Discussion
210
6.44 You Can Pick Your Friends
210
Problem
210
Solution
211
Discussion
212
6.45 You Can Pick Your Friends (in Batches)
212
Problem
212
Solution
214
Discussion
215
6.46 Invitations and Requests
215
Problem
215
Solution
216
Discussion
216
Inviting/requesting friends in bulk
218
Inviting/requesting a small number of specific friends
219
Inviting/requesting a single user
219
6.47 Predicting the Future with Type-Ahead Controls
219
Problem
219
Solution
219
Discussion
220
6.48 Using FBML Inside FBJS
220
Problem
220
Solution
221
Discussion
222
6.49 Dialogs That Pop
222
Problem
222
Solution
222
Discussion
224
6.50 Dialogs in Context
224
Problem
224
Solution and Discussion
224
6.51 Dialogs with Ajax
224
Problem
224
Solution
229
6.52 Facebook Share Buttons
229
Problem
229
Solution
230
Discussion
231
6.53 Feed Forms: Publishing Feed Stories from FBML
231
Problem
232
Solution
232
Discussion
233
6.54 Redirecting to a Different URL
233
Problem
233
Solution
233
Discussion
234
6.55 Painless Image Submitting
234
Problem
234
Solution
234
Discussion
234
6.56 Hunting for Robots: CAPTCHA in Your App
234
Problem
234
Solution
235
Discussion
236
6.57 FBML Caching
236
Problem
236
Solution
236
Discussion
237
6.58 Analyzing Traffic with Google Analytics
237
Problem
237
Solution
237
Discussion
239
6.59 Translations
239
Problem
239
Solution
241
Discussion
244
6.60 Valid HTML Tags
244
Problem
244
Solution
245
Discussion
245
6.61 Facebook and CSS: FBSS?
245
Problem
245
Solution
245
Discussion
247
6.62 Beating the CSS, JavaScript, and Image Cache
247
Problem
247
Solution
247
Discussion
251
Chapter 7. Facebook JavaScript (FBJS)
253
7.1 Dealing with Sandbox Renaming
253
Problem
253
Solution
253
Discussion
256
7.2 Losing Your < >s
256
Problem
256
Solution
256
Discussion
256
7.3 Retrieving DOM Elements
256
Problem
256
Solution
257
Discussion
257
7.4 Manipulating DOM Elements
257
Problem
257
Solution
259
7.5 Manipulating CSS Styles
259
Problem
260
Solution
260
Discussion
260
7.6 Manipulating CSS Class Names
260
Problem
260
Solution
261
Discussion
263
7.7 Dynamically Setting Content
263
Problem
263
Solution
263
Discussion
264
7.8 Textbox Selections
264
Problem
264
Solution
265
Discussion
265
7.9 Limiting the Length of Text Fields
265
Problem
266
Solution
266
Discussion
266
7.10 Creating Elements Dynamically
266
Problem
266
Solution
266
Discussion
267
7.11 Adding and Removing Event Listeners
267
Problem
267
Solution
267
Discussion
267
7.12 Retrieving Data via Ajax
267
Problem
267
Solution
269
Discussion
271
7.13 Displaying Pop-Up Dialogs
271
Problem
271
Solution
272
Discussion
273
7.14 Displaying Contextual Dialogs
273
Problem
273
Solution
274
Discussion
274
7.15 Avoiding Heartache When the DOM Changes
274
Problem
274
Solution
275
Discussion
275
7.16 Linking to External FBJS Files
275
Problem
276
Solution
276
Discussion
276
7.17 Use Firebug (No, Seriously)
276
Problem
276
Solution
277
Discussion
278
7.18 Accessing the DOM Behind FBJS
278
Problem
278
Solution and Discussion
279
7.19 Ajax Library: Backface
279
Problem
279
Solution
279
Discussion
281
Chapter 8. Facebook Query Language (FQL)
282
8.1 Playing with FQL
282
Problem
282
Solution
282
Discussion
282
8.2 FQL Query Structure
282
Problem
282
Solution
283
Discussion
284
8.3 Functions and Operators
284
Problem
284
Solution
284
Discussion
285
8.4 Indexed Facebook Tables and Fields
285
Problem
285
Solution
288
8.5 Advanced Relational Database Table Optimization
288
Problem
288
Solution
288
Denormalization
289
Cached counters
289
Precalculated sums
289
Discussion
290
Next steps
290
8.6 Album Table
290
Problem
290
Solution
291
Discussion
291
8.7 Retrieving an Album
291
Problem
291
Solution
291
Discussion
292
8.8 Counting All of a User’s Photos
292
Problem
292
Solution
292
Discussion
292
8.9 Retrieving Five Albums for a User
292
Problem
292
Solution
292
Discussion
293
8.10 Cookie Table
293
Problem
293
Solution
293
Discussion
294
8.11 Retrieving All Cookies for a User
294
Problem
294
Solution
294
Discussion
294
8.12 Retrieving a Specific Cookie
294
Problem
294
Solution
294
Discussion
294
8.13 Retrieving All Cookies for a Specific Path
294
Problem
294
Solution and Discussion
295
8.14 Metrics Table
295
Problem
295
Solution
296
Discussion
296
8.15 Retrieving Yesterday’s Metrics
296
Problem
296
Solution
297
Discussion
297
8.16 Retrieving Metrics for a Date Range
297
Problem
297
Solution
297
Discussion
298
8.17 Alerting Yourself
298
Problem
298
Solution
298
Discussion
299
8.18 Event Table
299
Problem
299
Solution
300
Discussion
300
8.19 Event Member Table
300
Problem
300
Solution
301
Discussion
301
8.20 Retrieving an Event
301
Problem
301
Solution
301
Discussion
301
8.21 Retrieving Events Created by a User
301
Problem
301
Solution
301
Discussion
302
8.22 Retrieving a User’s Events
302
Problem
302
Solution
302
Discussion
302
8.23 Retrieving a User’s Events with a Specific RSVP
302
Problem
302
Solution
302
Discussion
302
8.24 Retrieving Events Two Users Are Attending
302
Problem
302
Solution
303
Discussion
303
8.25 Friend Table
303
Problem
303
Solution
303
Discussion
303
8.26 Friend Request Table
303
Problem
304
Solution
304
Discussion
304
8.27 Retrieving a User’s Friends
304
Problem
304
Solution
304
Discussion
305
8.28 Checking Whether Two Users are Friends
305
Problem
305
Solution
305
Discussion
305
8.29 Retrieving a User’s Pending Friend Requests
305
Problem
305
Solution
305
Discussion
305
8.30 Checking for a Friend Request Between Two Users
305
Problem
305
Solution
306
Discussion
306
8.31 Friend List Table
306
Problem
306
Solution
306
Discussion
306
8.32 Friend List Members Table
306
Problem
306
Solution
307
Discussion
307
8.33 Retrieving a User’s Friend Lists
307
Problem
307
Solution
307
Discussion
307
8.34 Retrieving a Specific Friend List
307
Problem
307
Solution
307
Discussion
308
8.35 Retrieving Friends in Friend Lists
308
Problem
308
Solution
308
Discussion
308
8.36 Retrieving Friends in a Specific Friend List
308
Problem
308
Solution
308
Discussion
308
8.37 Groups Table
308
Problem
308
Solution
309
Discussion
309
8.38 Group Member Table
309
Problem
310
Solution
310
Discussion
310
8.39 Retrieving a Specific Group
310
Problem
310
Solution
310
Discussion
311
8.40 Retrieving a User’s Groups
311
Problem
311
Solution
311
Discussion
311
8.41 Checking Whether Two Users Are in the Same Group
311
Problem
311
Solution
311
Discussion
312
8.42 Listing Table
312
Problem
312
Solution
313
Discussion
313
8.43 Retrieving a Listing
313
Problem
313
Solution
313
Discussion
314
8.44 Retrieving a User’s Listings
314
Problem
314
Solution
314
Discussion
314
8.45 Retrieving a User’s Friends’ Listings
314
Problem
314
Solution
314
Discussion
314
8.46 Retrieving a User’s Listings by Category
314
Problem
314
Solution
315
Discussion
315
8.47 Page Table
315
Problem
315
Solution
317
Discussion
317
8.48 Page Fan Table
317
Problem
317
Solution
318
Discussion
318
8.49 Retrieving a Page
318
Problem
318
Solution
319
Discussion
319
8.50 Retrieving a User’s Pages
319
Problem
319
Solution
319
Discussion
319
8.51 Photo Table
319
Problem
319
Solution
320
Discussion
320
8.52 Photo Tag Table
320
Problem
320
Solution
321
Discussion
321
8.53 Retrieving the 10 Most Recent Photos from a User
321
Problem
321
Solution
321
Discussion
321
8.54 Retrieving All Photos a User Is Tagged In
321
Problem
321
Solution
321
Discussion
322
8.55 User Table
322
Problem
322
Solution
324
Discussion
324
8.56 App Friends
324
Problem
324
Solution
324
Discussion
324
8.57 Birthday Friends
324
Problem
324
Solution
324
Discussion
325
8.58 600 Errors
325
Problem
325
Solution
325
Discussion
326
8.59 Preload FQL
326
Problem
326
Solution and Discussion
327
Chapter 9. Facebook API
327
9.1 What’s an API?
327
Problem
328
Solution
329
Discussion
330
9.2 Getting Started with the Client Library
330
Problem
330
Solution
330
Discussion
330
9.3 RESTing with Facebook
330
Problem
331
Solution
331
Discussion
331
9.4 Storable Data
331
Problem
331
Solution
332
Discussion
332
9.5 Authenticating Users
332
Problem
332
Solution
332
Discussion
336
9.6 Creating a Session Key
336
Problem
336
Solution
336
Discussion
337
9.7 Creating an Infinite Session Key
337
Problem
337
Solution
337
Discussion
339
9.8 Getting a Session (Desktop Only)
339
Problem
339
Solution
339
Discussion
340
9.9 Creating an Auth Token (Desktop Only)
340
Problem
340
Solution
340
Discussion
340
9.10 Making Calls (Desktop Only)
340
Problem
340
Solution
340
Discussion
341
9.11 Logging Out
341
Problem
341
Solution and Discussion
341
9.12 Getting Allocations
341
Problem
342
Solution
342
Discussion
342
9.13 Getting Metrics
342
Problem
342
Solution
342
Discussion
344
FQL equivalent
344
9.14 Getting and Setting Application Properties
344
Problem
344
Solution
344
Discussion
346
9.15 Getting an App’s 4-1-1
346
Problem
346
Solution
347
Discussion
348
9.16 Batching Calls
348
Problem
348
Solution
348
Discussion
349
Return by reference
350
9.17 Getting and Setting Cookies
350
Problem
350
Solution
350
Discussion
351
FQL equivalent
351
9.18 Getting Events
351
Problem
351
Solution
352
Discussion
352
FQL Equivalent
352
9.19 Getting Event Members
352
Problem
352
Solution
352
Discussion
353
FQL equivalent
353
9.20 Refreshing FBML Caches
353
Problem
353
Solution
353
Discussion
354
9.21 Getting a (Ref) Handle on FBML
354
Problem
354
Solution
354
Discussion
354
9.22 Three Story Sizes: Working with Template Bundles
354
Problem
354
Solution
355
Discussion
356
Feed story example: Causes
356
About tokens
357
Getting all of your templates
358
Getting a template bundle
358
Deactivating a template bundle
358
9.23 Publishing News and Mini-Feed Stories
358
Problem
358
Solution
359
Discussion
359
9.24 Story Aggregation
359
Problem
360
Solution
360
Discussion
361
9.25 Setting Info Sections
361
Problem
361
Solution
362
Discussion
362
Getting Info sections
363
Adding options
363
Getting Options
363
9.26 FQL Queries
363
Problem
363
Solution and Discussion
363
9.27 Friends?
363
Problem
364
Solution
364
Discussion
364
FQL equivalent
365
9.28 Get Friends
365
Problem
365
Solution
365
Discussion
365
FQL equivalent
365
9.29 Get Friends Who Use My App
365
Problem
365
Solution
366
Discussion
366
FQL equivalent
366
9.30 Get Friend Lists
366
Problem
366
Solution
366
Discussion
366
FQL equivalent
367
9.31 Get Groups
367
Problem
367
Solution
367
Discussion
367
FQL equivalent
367
9.32 Get Group Members
367
Problem
367
Solution
368
Description
368
FQL equivalent
368
9.33 Creating/Modifying Marketplace Listings
368
Problem
368
Solution
368
Discussion
369
9.34 Get Marketplace Listings
369
Problem
369
Solution
370
Discussion
370
FQL equivalent
370
9.35 Get Marketplace Categories and Subcategories
370
Problem
370
Solution
370
Discussion
371
9.36 Deleting Marketplace Listings
371
Problem
371
Solution
371
Discussion
371
9.37 Searching the Marketplace
371
Problem
371
Solution
371
Discussion
372
9.38 Sending Notifications
372
Problem
372
Solution
373
Discussion
373
Sending to friends
374
Monitoring allocations
374
9.39 Get Notifications
374
Problem
374
Solution
374
Discussion
374
9.40 Get Pages
374
Problem
375
Solution
375
Discussion
375
FQL equivalent
375
9.41 Checking Page Properties
375
Problem
375
Solution
376
Discussion
376
9.42 Create a Photo Album
376
Problem
376
Solution
376
Discussion
377
9.43 Get Photo Albums
377
Problem
377
Solution
377
Discussion
378
9.44 Get Photos
378
Problem
378
Solution
378
Discussion
379
FQL equivalent
379
9.45 Uploading a Photo
379
Problem
379
Solution
379
Discussion
380
9.46 Adding Tags to Photos
380
Problem
380
Solution
380
Discussion
380
9.47 Getting and Setting Profile FBML
380
Problem
381
Solution
381
Discussion
383
9.48 Get a User’s Info
383
Problem
383
Solution
383
Discussion
383
FQL equivalent
383
9.49 Get Logged-In User
383
Problem
383
Solution
383
Discussion
384
9.50 Has a User Added My App?
384
Problem
384
Solution
384
Discussion
384
9.51 Setting Status
384
Problem
384
Solution
384
Discussion
385
9.52 Extended Permissions
385
Problem
385
Solution
386
Discussion
386
9.53 Checking Extended Permissions
386
Problem
386
Solution
386
Discussion
387
9.54 Storing Data with the Data Store API
387
Problem
387
Solution
390
Discussion
390
9.55 Granting Permissions to Other Applications Via the Permissions API
390
Problem
391
Solution
391
Discussion
392
9.56 Post-Remove (Uninstall) URL
392
Problem
392
Solution
392
Discussion
393
9.57 Adding Missing PHP Client Library Methods
393
Problem
393
Solution
395
Discussion
395
9.58 Error Codes
395
Problem
395
Solution
396
Discussion
397
Chapter 10. Marketing Your App
397
10.1 Attracting Users Through Facebook Ads
397
Problem
397
Solution
398
Discussion
401
10.2 Monetize, Measure, and Market with SocialMedia
401
Problem
401
Solution
401
Discussion
403
10.3 Social Network Advertising with Cubics
403
Problem
403
Solution
403
Discussion
404
10.4 Other Ad Networks
404
Problem
404
Solution
404
Discussion
404
10.5 Spreading Your App via Google AdWords
404
Problem
404
Solution
405
Discussion
405
10.6 Measuring Your Success
405
Problem
405
Solution
405
Discussion
405
Virality
406
Engagement
406
How to measure
407
10.7 Work the Integration Points
407
Problem
407
Solution
407
Discussion
407
10.8 Continuous Improvement Through A/B Testing
407
Problem
407
Solution
408
Discussion
408
10.9 The Great Apps Program
408
Problem
408
Solution
408
Discussion
409
10.10 Application Verification Program
409
Problem
409
Solution
409
Discussion
411
Index