类型 函数 返回值 事件 修订 版本 2024.3703 关键词 Facebook,登录 另请参阅 facebook.logout() facebook.* fbconnect
提示用户登录 Facebook。即使用户已经登录,也可以调用此函数。如果用户已经登录但请求了新的权限,则系统将提示用户授予新权限。建议的流程是第一次不请求任何权限,然后在需要时再请求其他权限。
登录以 fbconnect 事件的形式返回,该事件将发送到在 facebook.setFBConnectListener() 或此函数本身中指定的监听器。
facebook.login( [listener] [, permissions] )
监听器。 响应 fbconnect 事件的监听器。如果监听器是一个表,它应该有一个属性 "fbconnect",该属性是一个函数。
数组。 一个可选的字符串数组,对应于 Facebook 的发布 权限。这使您的应用程序可以请求用户向您的应用程序授予某些扩展权限。如果未提供,则不会请求扩展权限。使用 "publish_actions" 允许发布到用户墙上。为了方便开发者,如果需要,将自动请求所需的权限,例如 "public_profile" (参考) 和 "user_friends" (参考)。
facebook.login() 调用中请求这两种权限类型是不允许的 — 如果您尝试这样做,则只会请求-- This call will only request "user_events" as it's a read-only permission
facebook.login( { "user_events", "public_actions" } )
facebook.login() 调用执行,例如local facebook = require( "plugin.facebook.v4" )
-- 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 genericFacebookListener( event )
print( event )
end
-- This listener will handle the request of read-only permissions, then request publishable permissions
local function intermediateListener( 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( genericFacebookListener, { "publish_actions" } )
else
print( "The user did not grant the read-only permissions" )
end
end
end
end
-- Request read-only permissions, followed by publishable permissions
facebook.login( intermediateListener, { "user_events" } )