类型 函数 返回值 无 修订版本 版本 2024.3703 关键词 Facebook, setFBConnectListener 另请参阅 facebook.login() facebook.* fbconnect 
设置将接收 fbconnect 事件的监听器函数。当需要更改监听器但无需调用 facebook.login()、facebook.request() 或 facebook.showDialog() 时,可以使用此方法。
默认监听器是提供给 facebook.init() 的监听器,因此使用此 API 不是强制性的。
facebook.setFBConnectListener( listener )
监听器. 响应 fbconnect 事件的监听器。如果这是一个表,它应该有一个名为 "fbconnect" 的属性,该属性是一个函数。
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 facebookConnectListener( event )
    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
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 facebookInitListener( event )
    print( "Facebook initialized" )
    -- Initialization complete; share a link
    shareLink( "https://www.coronalabs.com/" )
end
-- Set the "fbconnect" listener 
facebook.setFBConnectListener( facebookConnectListener )
-- Set the "fbinit" listener to be triggered when initialization is complete
facebook.init( facebookInitListener )