【发布时间】: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