Unity3d AppRequest邀请限制选择

时间:2017-04-13 15:21:12

标签: c# facebook unity3d unity3d-gui unity3d-5

我对FB.AppRequest有疑问。我需要用户只从Facebook UI中显示的列表中选择一个朋友,但我找不到一种方法来查看Facebook Unity3d SDK。

感谢您的帮助。

public void ShareWithUsers()
{
    FB.AppRequest(

        "Come and join me, i bet u cant beat my score",
        null,
        new List<object>() {"app_users"},
        null,
        null,
        null,
        null,
        ShareWithUsersCallback

    );
}

void ShareWithUsersCallback(IAppRequestResult result)
{   
    if (result.Cancelled)
    {
        Debug.Log("Challenge Cancel");
        GameObject.Find("CallBacks").GetComponent<Text>().text = "Challenge Cancel";
    }
    else if (!String.IsNullOrEmpty(result.Error))
    {
        Debug.Log("Challenge on error");
        GameObject.Find("CallBacks").GetComponent<Text>().text = "Challenge on error";
    }
    else if (!String.IsNullOrEmpty(result.RawResult))
    {
        Debug.Log("Success on challenge");

    }
}

1 个答案:

答案 0 :(得分:1)

如果查看FB.AppRequest的文档,它会解释第四个参数是“to”。

public static void AppRequest(
    string message, 
    OGActionType actionType,
    string objectId,
    IEnumerable<string> to,
    string data = "",
    string title = "",    
    FacebookDelegate<IAppRequestResult> callback = null
)

其中to是要向其发送请求的Facebook ID列表,如果您现在保留null,则会向发件人显示一个对话框,允许他/她选择收件人。< / p>

所以在你的情况下,你可以让它null并让用户选择,或者如果它已经选择(你已经知道他想要挑战哪个朋友)那么你需要创建一个列表并添加他的Facebook ID。

FB.AppRequest(

        "Come and join me, i bet u cant beat my score",
        null,
        new List<object>() {"app_users"},
        new List<string>() {"[id of your friend]"},
        null,
        null,
        null,
        ShareWithUsersCallback

    );

无论哪种方式,此行new List<object>() {"app_users"}表示该请求可以发送给已经玩游戏的人。但是如果你删除它可以发送给他的任何朋友。

我看到some older code设置maxRecipients,如果设置为1,则允许您确保用户只通过用户界面选择一位朋友:

FB.AppRequest(
        string message,
        IEnumerable<string> to = null,
        IEnumerable<object> filters = null,
        IEnumerable<string> excludeIds = null,
        int? maxRecipients = null,
        string data = "",
        string title = "",
        FacebookDelegate<IAppRequestResult> callback = null);

但这不再出现在文档中。