java - Libgdx GDXFacebook 发布权限

标签 java facebook-graph-api libgdx

Facebook sdk 只能以读取权限或发布权限登录,但如果我两者都想要怎么办?我只在登录注册用户或验证用户身份时需要读取权限。

所以我认为正确的方法是首先使用 SignInMode.READ 进行signIn,然后再次signIn,但现在使用 SignInMode。发布

问题是当我第二次尝试登录时,它只是加载 accessToken,我尝试将 facebook.signOut() 放在中间,但什么也没有...

facebook.signIn(SignInMode.READ, readPermissions, new GDXFacebookCallback<SignInResult>() {
    @Override
    public void onSuccess(SignInResult result) {
        // Login successful
        clientManager.login(result.getAccessToken().getToken());
    }

    @Override
    public void onError(GDXFacebookError error) {
        // Error handling
    }

    @Override
    public void onCancel() {
    }

    @Override
    public void onFail(Throwable t) {
    }
});

//after the user log ins, the app ask for publish permissions, and I
// try to get it by logging in again but now wit `SignInMode.PUBLISH` like so....

facebook.signIn(SignInMode.PUBLISH, publishPermissions, new GDXFacebookCallback<SignInResult>() {
     @Override
     public void onSuccess(SignInResult result) {
         // Login successful
         clientManager.login(result.getAccessToken().getToken());
     }

     @Override
     public void onError(GDXFacebookError error) {
         // Error handling
     }

     @Override
     public void onCancel() {
     }

     @Override
     public void onFail(Throwable t) {
     }
 });

我在这里想问的是,在使用 SignInMode.READ 登录后,如何获得能够发布的 accessToken?

最佳答案

我是 gdx-facebook 扩展的开发者。

您的操作正确,请先使用读取权限登录,然后使用发布权限登录。

有2种情况:

  1. 您尚未授权该应用程序,或者授权该应用程序的权限少于您请求的权限。 -> 您将获得一个新 token ,其中包含所有现有的和新请求的权限。所有现有 token 均无效。

  2. 您已授予所有请求的权限。 -> 您将获得最新的 token 。

<小时/>

What im trying to ask here is how I get an accessToken capable of publishing after I singin with SignInMode.READ?

只需请求您需要的权限,您就会获得包含新旧权限的新升级 token 或已包含权限的旧 token 。

您可能已经授予了权限,这就是 token 不会更改的原因。查看您的 FB 设置 -> 应用程序以查看您授予了哪些权限。 token 的前 10-20 个字符通常看起来相似。不要对此感到困惑。

关于java - Libgdx GDXFacebook 发布权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45873978/

相关文章:

java - 如何在java上制作一个简单的键盘来有效地在JTextFields中输入?

java - LoginButton 中的 setFragment 无法应用于 MainFragment

ios - Facebook SDK收集用户信息和好友

Facebook 图形 API 'ids' 变量限制

java - Libgdx 分块 map 碰撞检测

java - libgdx 批处理在 FitViewport 之外绘制

java - 破损的 eclipse 能修复吗?

java - 从与用户输入匹配的数组列表元素中选择

java - Applet 和 Servlet 通信 block GUI

java - Libgdx 播放器旋转困惑