facebook.login()

类型 函数
返回值 事件
修订 版本 2024.3703
关键词 Facebook,登录
另请参阅 facebook.logout()
facebook.*
fbconnect

概述

提示用户登录 Facebook。即使用户已经登录,也可以调用此函数。如果用户已经登录但请求了新的权限,则会提示用户授予新权限。建议的流程是第一次不请求任何权限,然后在需要时再请求其他权限。

登录将以 fbconnect 事件的形式返回,该事件将发送到 facebook.init()facebook.setFBConnectListener() 或此函数本身指定的监听器。

我们强烈建议您调用 facebook.init() 并等待初始化完成,**然后再**进行此 API 调用。请参阅下面的代码示例。

语法

facebook.login( [listener] [, permissions], [, limitedLogin] )
监听器 (可选)

监听器. 响应 fbconnect 事件的监听器。如果监听器是一个表,它应该有一个属性 "fbconnect",该属性是一个函数。

权限 (可选)

数组. 一个可选的字符串数组,对应于 Facebook 的发布 权限。这使您的应用程序可以请求用户向您的应用授予某些扩展权限。如果未提供,则不会请求扩展权限。使用 "publish_actions" 允许发布到用户的墙上。为了方便开发者,如果需要,将自动请求所需的权限,例如 "public_profile" (参考) 和 "user_friends" (参考)。

有限登录 (可选)

布尔值. 默认值为 false,使用应用的有限登录将不会用于个性化或衡量广告效果。Android 不支持 FB 有限登录。

注意事项

-- This call will only request "user_events" as it's a read-only permission
facebook.login( { "user_events", "public_actions" } )
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 genericFacebookLogin( event )
    print( event )
end

-- This listener will handle the request of read-only permissions, then request publishable permissions
local function intermediateFacebookLogin( event )

    if ( "session" == event.type ) then
        if ( "login" == event.phase ) then
            local accessToken = facebook.getCurrentAccessToken()

            -- Continue only if the user granted the read-only permissions
            if ( valueInTable( accessToken.grantedPermissions, "user_events" ) ) then
                facebook.login( genericFacebookLogin, { "publish_actions" } )
            else
                print( "The user did not grant the read-only permissions" )
            end
        end
    end
end

local function facebookListener( event )

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

        print( "Facebook initialized" )

        -- Request read-only permissions, followed by publishable permissions
        facebook.login( intermediateFacebookLogin, { "user_events" } )
    end
end

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