我已经建立了一个社交经理课程,用于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。
还应该提到的是,这段代码还没有完成,看起来很邋..但是,提前感谢,你们可以给我任何帮助!
答案 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来解决这个问题,这就是给我错误的东西。