This is the offical plugin for Facebook Connect in PhoneGap!
The Facebook Connect plugin for PhoneGap allows you to use the same JavaScript code in your web application as you use in your native PhoneGap application, but your native PhoneGap application will use the Facebook native app to perform Single Sign On for the user (if possible - if it isn't then it will fall back to dialog-based authentication).
This is all licensed under MIT except for app/www/facebook_js_sdk.js which is the Facebook JS SDK and is Apache 2.0.
The Facebook SDK (both native and JavaScript) is changing independent of this plugin. The working versions of the Facebook Android, JS and iOS SDKs are bundled in this project via git submodules.
To use this plugin you will need to make sure you've registered your Facebook app with Facebook and have an APP_ID (https://developers.facebook.com/apps). If you plan on rolling this out on Android, please note that you will need to generate a hash of your Android key(s) and submit those to the Developers page on Facebook to get it working. Furthermore, if you are generating this hash on Windows (specifically 64 bit versions), please use version 0.9.8e or 0.9.8d of OpenSSL for Windows and not 0.9.8k. Big ups to fernandomatos for pointing this out!
|-example
| `-www
| `-index.html
|-lib
| |-facebook-js-patch
| |-facebook-js-sdk
| |-facebook-android-sdk
| `-facebook-ios-sdk
|-native
| |-android
| `-ios
`-www
`-pg-plugin-fb-connect.js
lib/facebook-js-patch is a diff file between the facebook-js-sdk and
the modified file to get it working with this plugin. This plugin
monkey-patches some of the facebook-js-sdk methods to hook in an
interface into the native Facebook SDKs.
lib/facebook_js_sdk is the modified facebook-js-sdk. It already includes the hooks to work with this plugin.
native/android and native/ios contain the native code for the plugin for both Android and iOS platforms.
www/pg-plugin-fb-connect.js is the JavaScript code for the plugin, this defines the JS API.
We've provided a few install scripts to get you rolling pretty quick. PLEASE NOTE: only Android works for the install scripts at this time.
Download the latest version of PhoneGap from www.phonegap.com.
Create an Android or iOS PhoneGap project. Let's assume you have this
project under ~/phonegap-facebook.
Make sure you pull down all of the submodules by running git
submodule update --init.
Depending what you've got handy, you could:
./install ~/phonegap-facebook <platform>node install.js ~/phonegap-facebook <platform>install.bat ~/phonegap-facebook
<platform>In the above, <platform> represents either "android" or "ios".
If you don't like this script magic, you can always roll up your sleeves and get into the nitty-gritty for the platform of your choice:
In the PhoneGap Android application you will need to put the following in your res/xml/plugins.xml file:
<plugin name="com.phonegap.facebook.Connect" value="com.phonegap.facebook.ConnectPlugin" />
You'll need to build + include the Facebook Android SDK and build + patch the Facebook JavaScript SDK:
git submodule update --init to initialize and pull down
the versions of the JS and Android Facebook SDKs that work with this plugin; they will end up under lib/.cd lib/facebook-js-sdk and run php
all.js.php >> ../facebook_js_sdk.js. This will create the JS SDK file
under lib/facebook_js_sdk.js. Please note: the output filename is
important as the patch assumes that filename!cd .. and apply the patch file by running patch <
facebook-js-patch.NOTE: I haven't been able to compile the facebook android SDK into a
jar with success. So, I just copied the source into my generated
PhoneGap application directory and imported the generated PhoneGap
Android package as an import at the top of FbDialog.java. TODO: Fix this
:P. cd facebook-android-sdk/facebook and run jar cf
facebook-android-sdk.jar src. This will create a
facebook-android-sdk.jar file that you need to copy into your
generated PhoneGap-Android's libs directory (and also add to your
build path).
From the PhoneGap Facebook Connect Plugin folder copy the contents of the native/android/ folder into the root of your PhoneGap Android application.
From the PhoneGap Facebook Connect Plugin folder copy the www/pg-plugin-fb-connect.js and lib/facebook_js_sdk.js files into your application's assets/www folder.
Now you are ready to create your application! Check out the example folder for what the HTML, JS etc looks like. Note that you will need to replace your appId if you use the example index.html file.
You can run the application from either the command line (ant clean && ant debug install) or from Eclipse.
NOTE: If you are having problems with SBJSON conflicts, download the latest version of git clone the latest cordova-ios code, build the installer, and run the installer to get updated!
lib/facebook-ios-sdk Remove facebook-ios-sdk.xcodeproj and facebook_ios_sdk_Prefix.pch files. Drag the src folder into your project under Plugins folder and make sure it is added as a "group" (yellow folder)The Facebook SDK will try to access various URLs, and their domains must be whitelisted in your PhoneGap.plist under ExternalHosts.
You can either add each subdomain separately:
Or you can allow all domains with:
Make sure you add the scheme to your [PROJECTNAME]-Info.plist (located as one of the files in your Xcode project), substitute [APP_ID] and [SCHEME_ID] below to the appropriate values. This is to handle the re-direct from Mobile Safari or the Facebook app, after permission authorization.
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>[SCHEME_ID]</string>
<key>CFBundleURLSchemes</key>
<array>
<string>fb[APP_ID]</string>
</array>
</dict>
</array>
$ claude mcp add phonegap-facebook-plugin \
-- python -m otcore.mcp_server <graph>