Unity3D Facebook SDK成就

时间:2013-09-24 16:31:35

标签: facebook facebook-graph-api sdk unity3d achievements

我正在尝试使用Facebook Unity SDK实现成就。

我希望有人能给我一个定性的描述这个过程所需的过程。

这是我到目前为止所做的。

  • 在服务器上托管网站构建
  • 在此网站上创建了一个成就文件夹,并创建了一个测试成就html文件,如https://developers.facebook.com/blog/post/539/

    我的主要困惑是注册成就和提出成就之间的区别。

注册成就只需要做一次,如果是,那么应该在哪里完成?我是否需要创建一个统一的脚本来记录我在其余测试之前运行的游戏的所有成就? 此外,我不确定方法调用如何用于注册和发布成就。我的印象是我需要的 调用FB.API(字符串端点,Facebook.HttpMethod,FacebookDelegate回调,字典formData)

但我真的不确定输入参数需要是什么。

这是我到目前为止的尝试(我很确定我使用的字符串端点是错误的)

private void RegisterAchievement()
{
    string achievement ="http://www.invadingspaces.com/unity/testing/Achievements/ach1.html";
    string appID = "999408935255000";
    string achievement_display_order = "1"; 

    string achievement_registration_URL = "https://graph.facebook.com/"+ appID + "/achievements";
    FB.API(achievement_registration_URL+","+"achievement="+ achievement+ "&display_order=" +achievement_display_order+ "&access_token=" + FB.AccessToken ,Facebook.HttpMethod.POST,null,null);
}

提前致谢。

1 个答案:

答案 0 :(得分:2)

我建议查看一般的Facebook成就API:https://developers.facebook.com/docs/games/achievements/

此外,您可以首先使用图形浏览器测试实际放置的内容,然后将其放入图形中: https://developers.facebook.com/tools/explorer

例如,创建一个新的成就就是这样:

var dict = new Dictionary<string,string>();
dict["achievement"] = "<URL_TO ACHIEVEMENT_HERE>";
FB.API(FB.AppId+"/achievements", Facebook.HttpMethod.POST, null, dict);

为了获得你所有的游戏成就,它是:

FB.API(FB.AppId+"/achievements", Facebook.HttpMethod.GET);

然后,为了给球员一个成就,它就是这样:

var dict = new Dictionary<string,string>();
dict["achievement"] = "<URL_TO ACHIEVEMENT_HERE>";
FB.API(FB.UserId+"/achievements", Facebook.HttpMethod.POST, null, dict);

为了让玩家获得他们完成的成就,它是:

FB.API(FB.UserId+"/achievements", Facebook.HttpMethod.GET);