类型 库 版本 发行版 2024.3703 关键词 平台 Android、iOS 另请参阅 Facebook Portal 设置 (指南) 实现 Facebook (指南)
此文档适用于 Facebook v4a 插件,它是 v4 插件的更新版本。此更新版本是异步的,并包含一个新的 facebook.init() API,允许您定义一个在初始化完成后调用的特定函数。
Facebook 现在要求您从您的应用页面(在应用设置>高级>安全下)包含客户端令牌,
要使用此版本,您应该更新您的 build.settings
以包含 "plugin.facebook.v4a"
"plugin.facebook.v4a"
Facebook 插件提供了一组用于访问 Facebook 社交网络的 API。这些函数允许用户登录/注销、发布消息和图像、检索用户状态、发送游戏邀请等。
您的应用程序必须能够正常使用
为 Facebook 开发应用需要您在 Facebook 开发者平台 注册。
local facebook = require( "plugin.facebook.v4a" )
要使用此插件,请在 build.settings
的 plugins
表中添加一个条目。添加后,构建服务器将在构建阶段集成该插件。
settings = { plugins = { ["plugin.facebook.v4a"] = { publisherId = "com.coronalabs" }, }, }
如果您的应用适用于 iOS,您还必须在 build.settings
中包含以下代码,以确保原生 Facebook 应用正常运行
settings = { iphone = { plist = { FacebookAppID = "XXXXXXXXXX", -- Replace XXXXXXXXXX with your Facebook App ID CFBundleURLTypes = { { CFBundleURLSchemes = { "fbXXXXXXXXXX", } } -- Replace XXXXXXXXXX with your Facebook App ID }, FacebookClientToken = "YYYYYYYYYYYYYY", -- Replace YYYYYYYYYYYYYY with your Facebook Client Token -- Whitelist Facebook apps LSApplicationQueriesSchemes = { "fb", -- Needed for the facebook-v4a.isFacebookAppEnabled() API "fbapi", "fbauth2", "fb-messenger-api", "fbshareextension" }, }, }, }
请注意,必须指定几个关键部分
FacebookAppID
— 将此键设置为 FacebookAppID = "XXXXXXXXXX"
,并将 XXXXXXXXXX
替换为您唯一的 Facebook 应用 ID。
FacebookClientToken
— 将此键设置为 FacebookClientToken = "YYYYYYYYYYYYYY"
,并将 YYYYYYYYYYYYYY
替换为您唯一的 Facebook 客户端令牌。
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 applicationChildElements = { -- Array of strings [[ <provider android:authorities="com.facebook.app.FacebookContentProviderXXXXXXXXXX" android:name="com.facebook.FacebookContentProvider" android:exported="true"/> ]], [[ <meta-data android:name="com.facebook.sdk.ClientToken" android:value="YYYYYYYYYYYYYYYYYYYYY"/> ]], }, -- Replace XXXXXXXXXX with your Facebook App ID and YYYYYYYYYYYYYYYYYYYYY with Facebook Client Token }, }
对于 Android,使用此插件时会自动添加以下权限/功能
“android.permission.INTERNET”
如果您使用的是 Solar2D Native for iOS,则应确保链接以下静态库
libBolts.a
libFBSDKCoreKit.a
libFBSDKLoginKit.a
libFBSDKShareKit.a
libfacebook.a
此外,您需要向 Info.plist
添加几个属性。在外部文本编辑器中打开该文件,并将以下 XML 代码添加到其中
<key>FacebookAppID</key> <!-- Replace XXXXXXXXXX with your Facebook App ID --> <string>XXXXXXXXXX</string> <key>FacebookClientToken</key> <!-- Replace YYYYYYYYYYYYYYYYYYYYY with your Facebook Client Token --> <string>YYYYYYYYYYYYYYYYYYYYY</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>
这与build.settings
添加项具有所有相同的关键部分,此外还添加了 CoronaDelegates
键及其数组中的 CoronaFacebookDelegate
。这允许 Facebook 登录正常工作,并在 Facebook 活动时暂停/恢复您的应用。
如果您使用的是 Solar2D Native for Android,则需要对您的 Android Studio 项目进行一些配置更改。请务必仔细遵循此过程,因为即使是轻微的错误也可能导致调试难题。
"plugin.facebook.v4a.jar"
文件复制到您项目的 "libs"
目录中。稍后,当 Facebook SDK 链接到您的 Android Studio 项目时,Facebook 插件包中的其余二进制文件将为您复制/重建。
AndroidManifest.xml
中<uses-permission android:name="android.permission.INTERNET"/>
AndroidManifest.xml
的 application
元素中,添加一个元数据
<!-- Replace XXXXXXXXXX with your Facebook App ID --> <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="\ XXXXXXXXXX"/> <!-- Replace XXXXXXXXXX with your Facebook ClientToken--> <meta-data android:name="com.facebook.sdk.ClientToken" android:value="\ XXXXXXXXXX"/>
由于您的 Facebook 应用 ID 是一个需要转换为字符串的数字,因此 Android 的\
android:value
的赋值中是必需的。
元数据
<!-- Replace XXXXXXXXXX with your Facebook Display Name from the Facebook Developer Portal --> <meta-data android:name="com.facebook.sdk.ApplicationName" android:value="XXXXXXXXXX"/>
下找到。ApplicationName
元数据
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.v4a.FacebookFragmentActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:configChanges="keyboardHidden|screenSize|orientation"/>
由于 Facebook v4 在 Android 上使用的是修改版本的 Facebook SDK,因此务必对 GitHub 上提供的 Facebook SDK 版本进行库引用。
通过
在下载的 Facebook SDK 中找到 facebook
目录。确认选择了该 Gradle 项目,然后在**新建模块**屏幕上单击**完成**,将 Facebook SDK 作为模块导入到您的 Solar2D Native 项目中。
在下载的 Facebook SDK 中,找到根目录下的 `gradle.properties` 文件,并将其内容复制到您的 Android Studio 项目的 `gradle.properties` 文件中。
返回 Android Studio,打开build.gradle (Module: app)
compile project(':facebook')