gpt4 book ai didi

android - Facebook Auth 有时会返回 OnCancel

转载 作者:行者123 更新时间:2023-11-30 01:54:50 27 4
gpt4 key购买 nike

我的应用程序中的 facebook 身份验证有时会调用 onCancel 方法,我不知道发生了什么。我觉得我的代码是正确的,有时 auth 工作得很好,有时却不行。

我的授权源代码:https://gist.github.com/ppamorim/76d40f0edf3fd4f64d47

然后,这在第 46 行失败。首先我要求:

strings.add("public_profile");
strings.add("email");
loginManager.logInWithReadPermissions(contextCallback.getActivity(), strings);

然后,我称之为:

ArrayList<String> stringss = new ArrayList<>();
stringss.add("publish_actions");
loginManager.logInWithPublishPermissions(contextCallback.getActivity(), stringss);

授权在那里工作正常,但在返回到我的应用程序后,今年随机掉落到 OnCancel。

list :

<!-- Facebook Keys -->
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/app_id" />

<provider android:authorities="com.facebook.app.FacebookContentProviderHIDDEN_KEY"
android:name="com.facebook.FacebookContentProvider"
android:exported="true" />

我不知道发生了什么......

编辑 1:

我换了源还是有同样的问题:

https://gist.github.com/ppamorim/446183341ecd5ad099fe

编辑 2:

新的更新,当然更少的代码。但仍然无法正常工作,它停在第 53 行。我将立即删除 publish_actions,然后在问题解决后返回此功能。

https://gist.github.com/ppamorim/3cd0a141aac5d52bd60e

最佳答案

我认为您不能像现在这样在短时间内连续两次调用登录对话框:

public Facebook authorize(/* ... */) {
// ...
ArrayList<String> strings = new ArrayList<>();
strings.add("public_profile");
strings.add("email");
loginManager.logInWithReadPermissions(contextCallback.getActivity(), strings);
ArrayList<String> stringss = new ArrayList<>();
stringss.add("publish_actions");
loginManager.logInWithPublishPermissions(contextCallback.getActivity(), stringss);
return this;
}

这不起作用的原因是 - 我认为 - 在登录对话框仍然打开时调用登录/发布权限对话框。这是因为登录对话框打开,然后异步运行到您自己的 authorize() 方法,该方法随后尝试再次打开权限对话框。显然,如果第一个登录对话框尚未正确完成,这可能会失败。

相反,您应该等待第一次登录的 onSuccess() 回调完成,然后决定是否要再次打开权限对话框以请求发布权限。

这也是documented by Facebook .

关于android - Facebook Auth 有时会返回 OnCancel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32408176/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com