facebook.showDialog()

类型 函数
返回值 事件
修订版 版本 2024.3703
关键字 Facebook、showDialog
另请参阅 facebook.login()
facebook.*
fbconnect

概述

显示交互式 Facebook UI 对话框,用于在用户的动态中发布帖子、邀请好友加入您的应用等。如果您需要应用本身发布帖子,请使用 facebook.request()

对话框的响应以 fbconnect 事件的形式返回,该事件将发送给 facebook.init()facebook.setFBConnectListener() 中指定的监听器。

语法

facebook.showDialog( action, params )
action (必需)

String. 您想显示的对话框。有效选项包括

params (必需)

Table. Lua 表,包含键值对,这些对作为参数传递给 Facebook API 调用。您在此处传递的键对应于可用于您想显示的对话框的特定参数 — 请参阅下方的 分享对话框游戏请求对话框 了解详细信息。

分享对话框

显示用于共享内容的 Facebook 对话框。对于此对话框,action 应该是 "link""photo"

注意
  • 在 Android 上,要从您的应用中发布共享链接,您必须确保在 Corona 模拟器中构建应用时提供的 应用程序名称Facebook 开发者门户网站 中的 显示名称 字段匹配。对于 Solar2D Native 开发人员,此要求在此概述 此处

  • 要使用分享对话框分享照片,设备上必须安装 Facebook 应用的 7.0 或更高版本。

对于此对话框,params 表可以包含以下键值对。请注意,某些键是必需的,而另一些则不是。

游戏请求对话框

显示原生的视图,允许用户向他们选择的任意好友发送游戏请求。对于此对话框,操作 应为 “请求”

备注

对于此对话框,params 表可以包含以下键值对。

示例

分享对话框
local facebook = require( "plugin.facebook.v4a" )

local function facebookListener( event )

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

        print( "Facebook initialized" )
        facebook.login()

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

        if ( "session" == event.type ) then
            -- Handle login event
            if ( "login" == event.phase ) then
                local shareParams = {
                    link = "https://www.coronalabs.com/",
                    title = "Corona Labs"
                }
                facebook.showDialog( "link", shareParams )
            end

        elseif ( "dialog" == event.type ) then
            -- Handle dialog event
            print( event.response )
        end
    end
end

-- Set the "fbinit" listener to be triggered when initialization is complete
facebook.init( facebookListener )
游戏请求
local facebook = require( "plugin.facebook.v4a" )

local function facebookListener( event )

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

        print( "Facebook initialized" )
        facebook.login()

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

        if ( "session" == event.type ) then
            -- Handle login event
            if ( "login" == event.phase ) then
                facebook.showDialog( "requests", 
                { 
                    message = "You should download this game!",
                    filter = "APP_NON_USERS"
                })
            end

        elseif ( "dialog" == event.type ) then
            -- Handle dialog event
            print( event.response )
        end
    end
end

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