这个错误意味着什么? java.lang.IllegalArgumentException:请求代码324不能在Facebook SDK

时间:2015-06-09 22:31:52

标签: android facebook facebook-graph-api parse-platform

我在Android应用上使用Parse和Facebook SDK。

我想要的只是在用户时间轴上共享一个链接,并检查用户是否接受了它。

但似乎为此我需要让用户登录,然后要求" publish_actions"然后显示共享窗口,因为只有登录并具有发布权限,来自ShareDialog的回调才会带来postID(我认为这是检查用户是否发布到他的时间线的唯一方法)(请告诉我,如果有的话)是另一种方式!)。为此,我将这些步骤连接到其他回调中。

第一个问题是我不知道如何处理" requestCode " s。

在我的 onActivityResult 上,Parse说我应该像这样调用 ParseFacebookUtils .onActivityResult():

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    ParseFacebookUtils.onActivityResult(requestCode, resultCode, data);
}

虽然Facebook文档告诉我像这样调用 callbackManager .onActivityResult():

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
}

我意识到第一个仅调用来自 ParseFacebookUtils 功能的回调,而第二个仅调用来自 Facebook SDK <的回调/ strong>即可。但是Parse并不能做所有事情,我需要同时使用它们,所以我该怎么做呢?

我尝试使用自己的&#34; requestCode &#34;初始化ParseFacebookUtils。像这样:

ParseFacebookUtils.initialize(this, 324);

(324是此处标题错误的数字)

然后我将 onActivityResult 更改为以下内容:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case 324:
            ParseFacebookUtils.onActivityResult(requestCode, resultCode, data);
            break;
        case 320:
            callbackManager.onActivityResult(requestCode, resultCode, data);
            break;
        default:
            break;
    }
}

320是在 ShareDialog 上明确声明的 requestCode ,如下所示:

 shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
          ...
       }, PARSE_FACEBOOK_REQUESTCODE);

但是发生了很奇怪的事情:

1 - 有时我得到的 requestCode 与那两个不同,比如325.这意味着我的switch-case处理方式不起作用。所以我接受了如何处理这个问题的建议。

2 - 有时我会在标题上收到错误:java.lang.IllegalArgumentException:请求代码 324 不能在Facebook SDK保留的范围内。我真的不明白,因为它来自ParseFacebookUtils调用应该由它自己管理。

最奇怪的是,甚至没有&#34; Google&#34;知道这个错误。它返回0结果,即使&#34;也不能在Facebook SDK保留的范围内。&#34;

如果你读到这里,我非常感谢你。如果你能向我解释如何解决它,我真的很感激。

0 个答案:

没有答案