类型 库 修订版 版本 2024.3703 关键字 平台 Android、iOS 另请参阅 Facebook 门户设置 (指南) 实现 Facebook (指南)
此文档适用于 Facebook v4 插件。我们强烈建议你修改代码以使用 Facebook v4a 插件,它是一个更新的异步版本,包含新的 facebook.init()
API。
Facebook 插件提供了一组用来访问 Facebook 社交网络的 API。这些函数允许用户登录/注销、发布消息和图像、检索用户状态、发送游戏邀请等。
你的应用必须与
的要求。Facebook 开发要求你在 Facebook 开发者门户 中注册。
local facebook = require( "plugin.facebook.v4" )
若要使用此插件,请在 build.settings
的 plugins
表中添加一个条目。添加后,构建服务器将在构建阶段集成插件。
settings = { plugins = { ["plugin.facebook.v4"] = { publisherId = "com.coronalabs" }, }, }
如果你的应用适用于 iOS,你还必须在 build.settings
中包含以下代码,以确保原生 Facebook 应用正常运行
settings = { iphone = { plist = { UIApplicationExitsOnSuspend = false, FacebookAppID = "XXXXXXXXXX", -- Replace XXXXXXXXXX with your Facebook App ID CFBundleURLTypes = { { CFBundleURLSchemes = { "fbXXXXXXXXXX", } } -- Replace XXXXXXXXXX with your Facebook App ID }, -- Whitelist Facebook apps LSApplicationQueriesSchemes = { "fb", -- Needed for the facebook-v4.isFacebookAppEnabled() API "fbapi", "fbauth2", "fb-messenger-api", "fbshareextension" }, }, }, }
请注意,必须指定几个关键部分
UIApplicationExitsOnSuspend
— 为确保 Facebook 可以正确恢复你的应用,你必须包含 UIApplicationExitsOnSuspend = false
。如果你出于其他原因将此参数设置为 true
,你必须将其还原为 false
(默认)。
FacebookAppID
— 将此键设置为 FacebookAppID = "XXXXXXXXXX"
,并将 XXXXXXXXXX
替换为你的唯一 Facebook 应用 ID。
CFBundleURLTypes
— 必须按显示的内容准确声明 CFBundleURLTypes
表,并且它必须包含一个名为 CFBundleURLSchemes
的表。在其中,包含你的 Facebook 应用 ID 并为其添加前缀 fb
。因此,如果你的应用 ID 是 1234567890,你应该指定:"fb1234567890"
。
LSApplicationQueriesSchemes
— 此白名单 URL 方案表确保你的应用和 Facebook SDK 正常一起运行。
如果你的应用适用于 Android,你还必须在 build.settings
中包含
settings = { android = { facebookAppId = "XXXXXXXXXX", -- Replace XXXXXXXXXX with your Facebook App ID }, }
对于 Android,使用此插件时会自动添加以下权限/功能
"android.permission.INTERNET"
如果你正在为 iOS 使用 Solar2D Native,你应该确保链接以下静态库
libBolts.a
libFBSDKCoreKit.a
libFBSDKLoginKit.a
libFBSDKShareKit.a
libfacebook.a
此外,你还需要向你的 Info.plist
添加多个属性。在外部文本编辑器中打开此文件,并将以下 XML 代码添加到其中
<key>UIApplicationExitsOnSuspend</key> <false/> <key>FacebookAppID</key> <!-- Replace XXXXXXXXXX with your Facebook App ID --> <string>XXXXXXXXXX</string> <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <!-- Replace XXXXXXXXXX with your Facebook App ID --> <string>fbXXXXXXXXXX</string> </array> </dict> </array> <key>LSApplicationQueriesSchemes</key> <array> <string>fb</string> <string>fbapi</string> <string>fbauth2</string> <string>fb-messenger-api</string> <string>fbshareextension</string> </array> <key>CoronaDelegates</key> <array> <string>CoronaFacebookDelegate</string> </array>
此代码具有与适用于CoronaDelegates
键,其中数组中包含CoronaFacebookDelegate
。这样一来,Facebook 登录就能正常工作,还能在 Facebook 处于活动状态时暂停/恢复您的应用。
如果您将 Solar2D Native 用于 Android,需要对 Android Studio 项目进行一些配置更改。请务必仔细遵循此步骤,因为即使是轻微的错误都可能导致调试头疼。
"plugin.facebook.v4.jar"
文件复制到项目的"libs"
目录中。Facebook 插件包中的其他二进制文件将在 Facebook SDK 链接到 Android Studio 项目时为您复制/重新构建。
AndroidManifest.xml
中<uses-permission android:name="android.permission.INTERNET"/>
AndroidManifest.xml
的application
元素中,添加一个meta-data
<!-- Replace XXXXXXXXXX with your Facebook App ID --> <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="\ XXXXXXXXXX"/>
由于您的 Facebook 应用程序 ID 是一个需要转换为字符串的数字,因此\
android:value
时是必需的。
meta-data
<!-- Replace XXXXXXXXXX with your Facebook Display Name from the Facebook Developer Portal --> <meta-data android:name="com.facebook.sdk.ApplicationName" android:value="XXXXXXXXXX"/>
ApplicationName
meta-data
AndroidManifest.xml
中<activity android:name="com.facebook.FacebookActivity" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <activity android:name="plugin.facebook.v4.FacebookFragmentActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:configChanges="keyboardHidden|screenSize|orientation"/>
由于 Facebook v4 在 Android 上使用的是 Facebook SDK 的修改版本,因此务必对 GitHub 上提供的 Facebook SDK 版本进行库引用。
通过以下方式链接至 Facebook SDK 的源代码
在已下载的 Facebook SDK 中查找facebook
目录。确认选择该 Gradle 项目,然后单击新模块屏幕上的完成,将 Facebook SDK 作为 Solar2D Native 项目的模块导入。
在已下载的 Facebook SDK 中,在根目录中找到gradle.properties
文件,并将其内容复制到您的 Android Studio 项目的gradle.properties
文件中。
回到 Android Studio,打开build.gradle (Module: app)
dependencies
块的底部
compile project(':facebook')