facebook.* (v4a)

类型
版本 发行版 2024.3703
关键词 Facebook
平台 Android、iOS
另请参阅 Facebook Portal 设置 (指南)
实现 Facebook (指南)

此文档适用于 Facebook v4a 插件,它是 v4 插件的更新版本。此更新版本是异步的,并包含一个新的 facebook.init() API,允许您定义一个在初始化完成后调用的特定函数。

Facebook 现在要求您从您的应用页面(在应用设置>高级>安全下)包含客户端令牌,(请参阅项目设置了解放置令牌的位置)

要使用此版本,您应该更新您的 build.settings 以包含 "plugin.facebook.v4a"(请参阅项目设置,在所有使用 Facebook 的 Lua 模块中 require "plugin.facebook.v4a"(请参阅语法,并将 facebook.init() 集成到您现有的项目代码中。

概述

Facebook 插件提供了一组用于访问 Facebook 社交网络的 API。这些函数允许用户登录/注销、发布消息和图像、检索用户状态、发送游戏邀请等。

重要

您的应用程序必须能够正常使用单点登录(SSO)。请阅读 Facebook Portal 设置 指南,了解更多关于如何在您的单点登录启用 Facebook 功能的应用程序中实现 SSO 的信息。

注册

为 Facebook 开发应用需要您在 Facebook 开发者平台 注册。

语法

local facebook = require( "plugin.facebook.v4a" )

函数

facebook.getCurrentAccessToken()

facebook.init()

facebook.isFacebookAppEnabled()

facebook.login()

facebook.logout()

facebook.publishInstall()

facebook.request()

facebook.setFBConnectListener()

facebook.showDialog()

facebook.logEvent()

属性

facebook.isActive

事件

fbconnect

fbinit

项目设置

要使用此插件,请在 build.settingsplugins 表中添加一个条目。添加后,构建服务器将在构建阶段集成该插件。

settings = {

    plugins =
    {
        ["plugin.facebook.v4a"] =
        {
            publisherId = "com.coronalabs"
        },
    },
}

iOS

如果您的应用适用于 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

如果您的应用适用于 Android,您还必须在 build.settings 中包含Facebook 应用 ID

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

iOS

如果您使用的是 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>

这与非 Solar2D Native实现的 build.settings 添加项具有所有相同的关键部分,此外还添加了 CoronaDelegates 键及其数组中的 CoronaFacebookDelegate。这允许 Facebook 登录正常工作,并在 Facebook 活动时暂停/恢复您的应用。

Android

如果您使用的是 Solar2D Native for Android,则需要对您的 Android Studio 项目进行一些配置更改。请务必仔细遵循此过程,因为即使是轻微的错误也可能导致调试难题。

  1. 找到适合您 Solar2D Native 版本的插件二进制包,并将**仅** "plugin.facebook.v4a.jar" 文件复制到您项目的 "libs" 目录中。
注意

稍后,当 Facebook SDK 链接到您的 Android Studio 项目时,Facebook 插件包中的其余二进制文件将为您复制/重建。

  1. 将以下权限添加到您的 AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
  1. AndroidManifest.xmlapplication 元素中,添加一个元数据标签,其中包含您的 Facebook 应用 ID 和 Facebook 客户端令牌。
<!-- 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 的赋值中是必需的。

  1. 同样,添加一个元数据标签,其中包含在 Facebook 开发者平台 中发布的**显示名称**。这可以在设置基本显示名称.
<!-- Replace XXXXXXXXXX with your Facebook Display Name from the Facebook Developer Portal -->
<meta-data android:name="com.facebook.sdk.ApplicationName" android:value="XXXXXXXXXX"/>
注意

下找到。ApplicationName元数据标签是使用 分享对话框 所必需的。

  1. 接下来,将以下活动添加到您的 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"/>
  1. 下载 Corona 的 Facebook SDK for Android 分支,可 在此处 获取。
重要

由于 Facebook v4 在 Android 上使用的是修改版本的 Facebook SDK,因此务必对 GitHub 上提供的 Facebook SDK 版本进行库引用。

  1. 通过文件新建导入模块在 Android Studio 中链接 Facebook SDK 的源代码。到达**新建模块**屏幕后,选择**源目录**字段旁边的 [] 按钮,然后浏览到上一步中提到的下载的 Facebook SDK。

  2. 在下载的 Facebook SDK 中找到 facebook 目录。确认选择了该 Gradle 项目,然后在**新建模块**屏幕上单击**完成**,将 Facebook SDK 作为模块导入到您的 Solar2D Native 项目中。

  3. 在下载的 Facebook SDK 中,找到根目录下的 `gradle.properties` 文件,并将其内容复制到您的 Android Studio 项目的 `gradle.properties` 文件中。

  4. 返回 Android Studio,打开build.gradle (Module: app)文件,并将此行添加到 `dependencies` 块的底部

compile project(':facebook')