【问题标题】:Unity Facebook SDK - "FB.API" appears to not save or load score valuesUnity Facebook SDK - “FB.API”似乎无法保存或加载分数值
【发布时间】:2014-04-15 15:00:25
【问题描述】:

我正在使用官方 Facebook SDK 为 Facebook Canvas 创建游戏。尽管直接使用 Facebook Unity 示例中的代码,但我无法保存或加载得分值。我没有收到任何错误或消息 - 当我尝试检索分数时始终返回 0 值。其他一切(登录、发布到新闻提要等)都运行良好——只是分数管理不行。此外,Unity 编辑器和画布本身都会发生这种情况。

我这样保存玩家的分数:

public void SaveScore(int _score)
{
    _fbScore = _score;

    var _query = new Dictionary<string, string>();
    _query["score"] = _fbScore.ToString();

    FB.API("/me/scores", Facebook.HttpMethod.POST, delegate(FBResult r) { Util.Log("Result: " + r.Text); }, _query);

    //FB.API ("/me/scores", Facebook.HttpMethod.POST, ScoreSaveCallBack, scoreData);
    _hiScoreText.text = _fbScore.ToString();
}

然后我尝试用这种方法检索分数:

public void GetHighScore()
{
    if (_fbIsInited)
        FB.API ("/app/scores?fields=score,user.limit(20)", Facebook.HttpMethod.GET, GetScoreCallBack);
}

回调方法:

void GetScoreCallBack(FBResult _result)
{
    try 
    {
        List<object> _scoresList = Util.DeserializeScores(_result.Text);
        foreach(object _score in _scoresList)
        {
            var _entry = (Dictionary<string,object>) _score;
            var _user  = (Dictionary<string,object>) _entry["user"];

            string _userId = (string)_user["id"];

            if (string.Equals(_userId, FB.UserId))
            {
                _fbScore = GetScoreFromEntry(_entry);
                _hiScoreText.text = _fbScore.ToString();
                Debug.Log("FB SCORE: + " + _fbScore);
            }
        }
    }
    catch (System.Exception _e)
    {
        Debug.Log(_e.Message);
    }
}

由于返回的分数总是0,我不知道是save还是load方法的问题。

编辑: 更糟糕的是,当我尝试发布分数时,不知从何而来,我开始收到这些错误:

You are trying to load data from a www stream which had the following error when downloading.
403 Forbidden
UnityEngine.WWW:get_text()
FBResult:get_Text()
FacebookManager:<SaveScore>m__0(FBResult) (at Assets/Scripts/Facebook/FacebookManager.cs:138)
Facebook.<Start>c__Iterator0:MoveNext()

我没有对代码进行任何更改,它们只是每次都开始出现!

【问题讨论】:

  • 我也面临同样的问题。你解决了吗?
  • 嘿我也面临这个问题.. :(((

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


【解决方案1】:

您不应该在此调用中传递数字应用程序 ID 而不是“应用程序”吗?

FB.API ("/123456789/scores?fields=score,user.limit(20)"

您可以在应用程序的主面板上的FacebookDeveloper 仪表板找到您的应用程序代码 - 它是“应用程序标识符”。

你是否也在 unity Facebook|Facebook Settings|App id 中指定了这个数字?这应该可以解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多