首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android-Facebook集成:第一次用户会话没有权限

Android-Facebook集成:第一次用户会话没有权限
EN

Stack Overflow用户
提问于 2014-08-15 23:52:41
回答 1查看 91关注 0票数 0

我有一个Android应用程序,需要能够更新用户的Facebook状态。我使用此代码请求适当的权限:

代码语言:javascript
复制
public void onClick(DialogInterface dialog, int which) {

    final String openPermission = "basic_info";
    final String publishPermission = "publish_actions";

    Session.StatusCallback callback = new Session.StatusCallback() {

        @Override
        public void call(Session session, SessionState state, Exception exception) {
            Log.d("test", "callback session opened " + session.isOpened() + " " + exception);
            if (session.isOpened()) {
                Log.d("test", "callback session permissions " + session.getPermissions());
                if (session.getPermissions().contains(publishPermission)) {
                    doUpdateStatus(session, status);
                } else {
                    Session.NewPermissionsRequest newPermRequest = new Session.NewPermissionsRequest(ctx, publishPermission);
                    session.requestNewPublishPermissions(newPermRequest);
                }
            }
        }
    };

    Session session = new Session.Builder(ctx)
        .setApplicationId(APPLICATION_ID)
        .build();

    Session.setActiveSession(session);

    Log.d("test", "session opened " + session.isOpened());
    if (!session.isOpened()) {
        Session.OpenRequest openRequest = new Session.OpenRequest(ctx);
        openRequest.setPermissions(new String[]{openPermission});
        session.addCallback(callback);
        session.openForRead(openRequest);
    } else {
        callback.call(session, session.getState(), null);
    }
}

除了用户第一次尝试时(当用户从未尝试过与我的应用程序进行任何交互时),这段代码运行良好。在这种情况下,session.getPermissions()只返回[],即使在以无限循环结尾的NewPermissionRequest之后,程序仍在请求publish_action权限。

我怎么做才能使正确的许可,即使是在第一次调用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-16 22:45:38

我找到了一种绕过这个问题的方法:我创建了2个回调,一个用于会话打开请求,一个用于状态更新权限请求。

在状态更新权限请求的回调中,如果会话没有正确的权限,我只需关闭它并创建一个新会话。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25335694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档