【问题标题】:Not able to delete apprequests using Http.Method.DELETE in facebook sdk for Unity无法在 facebook sdk for Unity 中使用 Http.Method.DELETE 删除应用请求
【发布时间】:2017-10-11 16:02:12
【问题描述】:

我在统一游戏中使用 facebook 的官方 sdk 进行统一。我能够使用 FB.AppRequest 和 FB.API(/USER_ID/apprequests, Facebook.HttpMethod.GET, MY_Callback) 发送/获取请求,并且我还能够使用 FB.API(/REQUEST_ID, Facebook. HttpMethod.GET,回调)。但我无法使用 FB.API(/Request_Id, Facebook.HttpMethod.DELETE, callback) 删除请求。我在尝试删除特定请求时收到此错误

09-23 17:45:05.798: E/Unity(3235): Web 错误: java.io.FileNotFoundException:https://graph.facebook.com/MY_REQUEST_ID

下面是我使用的确切代码

FB.API("/"+FB.UserId+"/apprequests", Facebook.HttpMethod.GET, GiftCallback);
function GiftCallback(response:String){
Debug.Log(response);
var giftResponse = JSON.Parse(response);


if (giftResponse["data"][0]["data"].Value == "life"){
    Debug.Log("Life request found");
    FB.API("/"+giftResponse["data"][0]["id"].Value+"?access_token=Access_TOKEN", HttpMethod.DELETE, GiftConfirmCallback);
    Debug.Log("Delete request has been called");
    Debug.Log("Request id is"+giftResponse["data"][0]["id"].Value);
} else {
    Debug.Log("No life request found");
}
}
function GiftConfirmCallback(response:String){
Debug.Log("Gift Request delete confirmation");
}

现在我得到了所有的调试,除了最后一个没有在任何地方打印出来。

Debug.Log("礼物请求删除确认");

当我观察更多时,我发现了

网页错误:java.io.FileNotFoundException:https://graph.facebook.com/MY_REQUEST_ID?access_token=ACCESS_TOKEN

如果我跑了

https://graph.facebook.com/MY_REQUEST_ID?accesstoken=ACCESSTOKEN 在浏览器中,它为我提供了正确的 apprequest 详细信息。

【问题讨论】:

  • 您是否使用完整的个人请求 ID <REQUEST_OBJECT_ID>_<USER_ID>,如文档中所述...?
  • @Rohit:这里有一个 sdk 解决了这个问题,我们还没有完成一整套测试,但我不想阻止你取得进展。随意抓住这个,如果它解决了你的问题,请告诉我:unite-friend-smash.parseapp.com/v4.2.4/FacebookSDK.unitypackage
  • @aaron 感谢它在我的 Android 设备上运行。虽然它在统一编辑器中给了我 nullreferenceexception 这些是错误: NullReferenceException:Facebook 对象尚未加载。您是否调用了 FB.Init()? FB.get_FacebookImpl () (在 Assets/Plugins/FBScript/FB.cs:23) FB.Login (System.String 范围,Facebook.FacebookDelegate 回调) (在 Assets/Plugins/FBScript/FB.cs:115) Facebook_Implementation.Start () (at Assets/Facebook_Implementation.js:54) NullReferenceException: 对象引用未设置为对象的实例
  • @Rohit:在编辑器中,它需要 EditorFacebook.cs 进行模拟。您的项目中是否存在该类?它还需要互联网连接才能工作。
  • 谢谢罗希特!做的任务。尽管它已被删除,但我们不希望编辑器中出现崩溃。

标签: facebook-graph-api facebook-unity-sdk


【解决方案1】:

我遇到了你提到的同样的问题。它只发生在我的 Android 上,而不是 iOS 上。我使用了一个简单的解决方法:

FB.API ("/" + requestID + "?method=delete", Facebook.HttpMethod.GET, LogCallback);

【讨论】:

    【解决方案2】:

    这是 Facebook Unity SDK 中的一个错误。正如 Aaron 所说,它将在下一个版本的 sdk 中修复。如果其他人急于实现它,他们可以尝试@aaron 在评论中提供的最新 sdk。但请记住,它还没有经过大量测试,也没有公开。

    【讨论】:

      【解决方案3】:

      FB.API("/"+giftResponse["data"][0]["id"].Value+"?access_token=Access_TOKEN", HttpMethod.DELETE, GiftConfirmCallback);

      您的意思是改为这样做吗? FB.API("/"+giftResponse["data"][0]["id"].Value+"?access_token="+Access_TOKEN, HttpMethod.DELETE, GiftConfirmCallback);

      现在您的代码正在将键/值 access_token="Access_TOKEN" 作为 url 参数传递。您也可以省略 access_token 参数,因为如果 Facebook SDK 不存在,它将注入它获得的参数,所以这应该也可以: FB.API("/"+giftResponse["data"][0]["id"].Value, HttpMethod.DELETE, GiftConfirmCallback);

      更新:Http.Method.DELETE 问题已在最新版本中得到修复

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多