类型 库 版本 发行版 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')