通过Facebook SDK for Unity发布用户分数时出现400错误请求

时间:2014-04-29 06:53:10

标签: facebook-unity-sdk

我正在使用Unity3的Unity3D 4.3.4编辑器和Facebook SDK,它允许在编辑器内进行测试。我能够成功地发布我的游戏截图,但我正在努力发布一个分数。

我的代码基于这两个样本: Facebook Graph APIFacebook 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);
}

1 个答案:

答案 0 :(得分:8)

我能够解决问题。很难弄明白,因为FBResult类型的结果对象只暴露了3个属性:一个字符串Text变为空,一个Texture2D形式的Image也是空的,一个字符串Error只显示&#34; 400 Bad Request&#34;。我无法拦截我的代理Fiddler的回复。 有关FBResult

的更多信息,请参见此处

幸运的是,Mono Developer允许我查看FBResult对象的私有部分并扩展数据,我发现了一个名为responseHeaderString的属性,它显示了标题上返回的更详细的错误。

错误是:

WWW-Authenticate:OAuth&#34; Facebook平台&#34; &#34; INVALID_REQUEST&#34; &#34;(#3)方法只允许用于游戏&#34;

从那里我很容易发现我需要在Facebook上查看我的应用程序详细信息并将类别更改为游戏。由于我的Facebook是西班牙语,当我创建我的应用程序时,我选择了娱乐,因为&#34; Juegos&#34;没有列出,你需要滚动它并不明显。

我想分享这些信息,因为即使你可能面临完全不同的问题,知道从Mono Developer检查FBResult对象会帮助你找出响应标题中的原因。

相关问题