我正在使用Unity3的Unity3D 4.3.4编辑器和Facebook SDK,它允许在编辑器内进行测试。我能够成功地发布我的游戏截图,但我正在努力发布一个分数。
我的代码基于这两个样本: Facebook Graph API 和 Facebook SDK Unity Tutorial 。在检查结果对象的回调方法中,我得到:
400错误请求
如果我将方法从POST更改为GET,我不会收到错误,但分数也未发布。但至少我知道得分和access_token正在发送。
以下是Proxy(Fiddler)捕获的内容,但我无法捕获POST,只能捕获GET。
GET / ME /分数得分= 89&安培; =的access_token&CAAIx1MAZCucgBAEh8LvPA5A4JGuUBSAre0WGhQRZC11WHEgFh1KQJNnsbOEjN5ppeqfumfazmS6CIrZCRlJEKNVhU9wtZCJJ66d3sJqBQYyAbSpBnNIrLN70hJ91uJbEXRD1HwITbViziv9ZC1vhLleyKOILrN97DItP1DnGbzP0y0xoKmVA4RN42Shb716EUEY49wZBlsXXXXXX放大器; HTTP / 1.1
这是我的代码:
private IEnumerator PostHighScore()
{
yield return 0;
int highScore;
highScore = (int)LevelGenerator.Instance.distance;
Dictionary<string, string> wwwForm = new Dictionary<string, string>();
wwwForm["score"] = highScore.ToString();
Log("Just about to POST to /me/scores");
FB.API("/me/scores", Facebook.HttpMethod.POST, PostHighScoreCallback, wwwForm);
}
答案 0 :(得分:8)
我能够解决问题。很难弄明白,因为FBResult类型的结果对象只暴露了3个属性:一个字符串Text变为空,一个Texture2D形式的Image也是空的,一个字符串Error只显示&#34; 400 Bad Request&#34;。我无法拦截我的代理Fiddler的回复。 有关FBResult
的更多信息,请参见此处幸运的是,Mono Developer允许我查看FBResult对象的私有部分并扩展数据,我发现了一个名为responseHeaderString的属性,它显示了标题上返回的更详细的错误。
错误是:
从那里我很容易发现我需要在Facebook上查看我的应用程序详细信息并将类别更改为游戏。由于我的Facebook是西班牙语,当我创建我的应用程序时,我选择了娱乐,因为&#34; Juegos&#34;没有列出,你需要滚动它并不明显。
我想分享这些信息,因为即使你可能面临完全不同的问题,知道从Mono Developer检查FBResult对象会帮助你找出响应标题中的原因。