facebook.init

类型 函数
返回值
修订版本 版本 2024.3703
关键词 Facebook,初始化
另请参阅 facebook.login()
facebook.*
fbconnect
fbinit

概述

设置监听器函数,该函数将在 Facebook SDK 初始化完成后接收 fbinit 事件。

此方法还将相同的监听器函数设置为 fbconnect 事件的默认监听器,因此无需调用 facebook.setFBConnectListener(),除非您想为 fbconnect 事件和 fbinit 事件使用不同的监听器。

重要

当需要该插件时,Facebook SDK 的初始化将自动触发。此调用提供了一种确定初始化何时完成的方法。强烈建议您在调用 facebook.login()facebook.publishInstall() 等方法之前等待初始化完成。

语法

facebook.init( listener )
监听器 (必填)

监听器. 一个响应 fbinit 事件以及可选的 fbconnect 事件的监听器。如果这是一个表,它应该有一个名为 `“fbinit”` 的属性,该属性是一个函数。

示例

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

-- Check for a value inside the provided table
local function valueInTable( t, valueToFind )
    for k,v in pairs( t ) do
        if v == valueToFind then
            return true
        end
    end
    return false
end

local function shareLink( url )

    local accessToken = facebook.getCurrentAccessToken()
    if accessToken == nil then
        facebook.login()
    elseif not valueInTable( accessToken.grantedPermissions, "publish_actions" ) then
        facebook.login( { "publish_actions" } )
    else
        facebook.showDialog( "link", { link=url } )
    end
end

local function facebookListener( event )

    if ( "fbinit" == event.name ) then

        print( "Facebook initialized" )

        -- Initialization complete; share a link
        shareLink( "https://www.coronalabs.com/" )

    elseif ( "fbconnect" == event.name ) then

        if ( "session" == event.type ) then
            -- Handle login event and try to share the link again if needed
        elseif ( "dialog" == event.type ) then
            -- Handle dialog event
        end
    end
end

-- Set the "fbinit" listener to be triggered when initialization is complete
facebook.init( facebookListener )