我对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");
}
}
答案 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);
但这不再出现在文档中。