许可的Facebook SDK的Andr​​oid [英] Permission facebook sdk Android

查看:153
本文介绍了许可的Facebook SDK的Andr​​oid的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

拆装的Facebook 。无法获取 publish_actions 许可。使用这个code:

  session.requestNewPublishPermissions(新
Session.NewPermissionsRequest(这一点,许可));
 

任何解决方案...

解决方案

 私有静态最后的名单,其中,字符串> PERMISSIONS = Arrays.asList(publish_actions);
私人布尔pendingPublishReauthorization = FALSE;
 

onActivityResult 做到这一点

 会话的会话= Session.getActiveSession();

    如果(会话!= NULL){

        //检查发布权限
        名单<字符串>权限= session.getPermissions();
        如果(!isSubsetOf(权限,权限)){
            pendingPublishReauthorization =真;
            Session.NewPermissionsRequest newPermsnRequest =新Session.NewPermissionsRequest(
                    这,权限);
            session.requestNewPublishPermissions(newPermsnRequest);
            返回;
        }
    }
 

另外,在你的类实现这一点。

 私人布尔isSubsetOf(集<字符串> A,
        收藏<字符串> B){
    对于(字符串字符串:1){
        如果(!b.contains(串)){
            返回false;
        }
    }
    返回true;
}
 

这样做,你就能得到所有的公共权限。你获得读取权限和发布权限,那么只有请求后打开会话。

Working on Facebook. Unable to get publish_actions permission. Using this code:

session.requestNewPublishPermissions(new
Session.NewPermissionsRequest(this, PERMISSION));

any solution...

解决方案

private static final List<String> PERMISSIONS = Arrays.asList("publish_actions");
private boolean pendingPublishReauthorization = false;

in onActivityResult do this

Session session = Session.getActiveSession();

    if (session != null) {

        // Check for publish permissions
        List<String> permissions = session.getPermissions();
        if (!isSubsetOf(PERMISSIONS, permissions)) {
            pendingPublishReauthorization = true;
            Session.NewPermissionsRequest newPermsnRequest = new Session.NewPermissionsRequest(
                    this, PERMISSIONS);
            session.requestNewPublishPermissions(newPermsnRequest );
            return;
        }
    }

Also implement this in your class.

private boolean isSubsetOf(Collection<String> a,
        Collection<String> b) {
    for (String string : a) {
        if (!b.contains(string)) {
            return false;
        }
    }
    return true;
}

By doing this you will be able to get all the public permissions. you have to open the session after getting read permissions and then only request for publish permissions.

这篇关于许可的Facebook SDK的Andr​​oid的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆