Unity Facebook SDK:AppRequest错误400错误请求

时间:2014-09-11 15:44:27

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

我已经建立了一个社交经理课程,用于facebook unity sdk,而不是Prime [31]版本,只是你可以从Facebook获得的那个:https://developers.facebook.com/docs/unity/downloads

我使用Unity3D引擎构建此功能,以便与Android和IOS一起使用。

在我尝试与经理实施App-request之前,一切都很顺利。

我收到了#34;错误400错误请求"除了错误信息之外没什么可做的,所以我希望这里的任何人都能帮我解决这个问题:

调用应用请求的代码:

void RequestAskfor(string requestTitle, string requestMessage, string objectID, string Quantity)
{
    string[] friendIDs = new string[CurrentUser.FriendList.Count];

    for (int i = 0; i < friendIDs.Length; i++)
    {
        friendIDs[i] = CurrentUser.FriendList[i].UserID;
    }

    string data = "{\"type\":\"AskFor\",\"item\":\"{\"objectID\":\"" + objectID + ",\"quantity\":\"" + Quantity + "}}";

    FB.AppRequest(requestMessage, Facebook.OGActionType.AskFor, objectID, null, null, null, data, requestTitle, RequestCallback);
}

这是gui按钮,应该测试它是否有效:

if(GUI.Button(new Rect(300, 300, 300, 300), "Apprequest Test"))
{
    RequestAskfor("Giv mig mad", "Giiiiv miiiig maaaaaad", "food", "1");
}

以下是我用以验证应用的权限:

if (GUI.Button(new Rect(100, 200, 125, 35), "Login!"))
{
    Login("email,publish_actions,public_profile,user_friends,invitable_friends");
}

上面的所有代码都有效(在某种程度上),我甚至可以获得&#34;邀请请求屏幕&#34;

然而,当我在邀请请求屏幕上按下时,我收到此错误消息和来自API的外部呼叫:

错误消息:

400 Bad Request
UnityEngine.Debug:LogError(Object)
FbDebug:Error(String)
Facebook.FallbackData:JSFallback(String)
Facebook.AsyncRequestDialogPost:CallbackWithErrorHandling(FBResult)
Facebook.<Start>c__Iterator0:MoveNext()

外部呼叫:(格式有点太大了)

    External Call: fbUi("{\"message\":\"Giiiiv 
    miiiigmaaaaaad\",\"action_type\":\"askfor\",\"   
    object_id\":\"food\",\"data\":\"{\\\"type\\\":\\\"AskFor\\\",\\\"item\\\":\\\"
    {\\\"objectID\\\":\\\"food,\\\"quantity\\\":\\\"1}}\",\"title\":\"Giv mig 
    mad\",\"app_id\":\"339275729572840\",\"locale\":\"en_US\",
    \"method\":\"apprequests\"}", "1");
    UnityEngine.Application:ExternalCall(String, Object[])
    Facebook.CanvasFacebook:JSFallbackUI(String, Dictionary`2, FacebookDelegate)
    Facebook.FallbackData:JSFallback(String)
    Facebook.AsyncRequestDialogPost:CallbackWithErrorHandling(FBResult)
    Facebook.<Start>c__Iterator0:MoveNext()

如果您想仔细查看代码,请链接到项目中仅有的两个脚本:https://www.dropbox.com/s/5htdry9gd4bhwip/SocialManager.zip?dl=0

我一直在检查FB.AppRequest方法的文档,并试图找到有类似问题的人,但到目前为止我还没有能够解决这个问题(显然) 。

所有其他代码工作正常,但它只是目前困扰我的AppRequests。

还应该提到的是,这段代码还没有完成,看起来很邋..但是,提前感谢,你们可以给我任何帮助!

4 个答案:

答案 0 :(得分:1)

对象ID必须引用实际的OpenGraph对象(通常是数字ID)。这是你如何创建它们。

https://developers.facebook.com/docs/games/requests/v2.1#creatingobject

答案 1 :(得分:0)

尝试调试您在MonoDevelop中从Facebook获得的结果,详见here。你会在那里收到一条正确的错误信息,这会让你有更多的信息。

答案 2 :(得分:0)

我实际上遇到了同样的错误。问题是您的应用程序详细信息在Facebook方面不正确。转到我在Facebook上的应用程序详细信息并将类别更改为游戏。

我希望这适合你:)。

答案 3 :(得分:0)

感谢所有答案!

我设法通过进入对象浏览器工具并找到正确的objectID来解决这个问题,这就是给我错误的东西。