Facebook android sdk 的 Session.requestNewPublishPermissions 给出异常
Posted
技术标签:
【中文标题】Facebook android sdk 的 Session.requestNewPublishPermissions 给出异常【英文标题】:Facebook android sdk's Session.requestNewPublishPermissions gives an exception 【发布时间】:2013-02-09 22:22:24 【问题描述】:我正在将 facebook 集成到我的 android 应用程序中,当用户第一次登录时,我正在使用我的 requestFacebookPermissions(session) 方法请求 publish_actions 权限。但是每当我调用此方法时,它都会给我以下异常...
java.lang.UnsupportedOperationException: Session: an attempt was made to request new permissions for a session that has a pending request.
我没有任何其他待处理请求,可能是其他一些内部请求,但我如何在不获得此异常的情况下请求权限?如果我必须等到其他请求完成就可以了,但我不知道如何获取挂起的请求是否完成。
private void requestFacebookPermissions(Session session)
if (session != null && session.getState().isOpened())
List<String> permissions = session.getPermissions();
Log.i("Facebook", "Permissions Count: " + permissions.size());
for (String string : permissions)
Log.i("FacebookPermissions", string);
if (!permissions.containsAll(PERMISSIONS))
try
session.requestNewPublishPermissions(new Session.NewPermissionsRequest(FacebookActivity.this, PERMISSIONS));
catch (Exception e)
e.printStackTrace();
else
return;
【问题讨论】:
您好,您解决了这个问题吗?我有同样的问题。 【参考方案1】:我在登录后请求发布权限
这是我的代码
public class FacebookAccount extends FragmentActivity
private UserSettingsFragment userSettingsFragment;
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.facebook_login);
FragmentManager fragmentManager = getSupportFragmentManager();
userSettingsFragment = (UserSettingsFragment) fragmentManager
.findFragmentById(R.id.login_fragment);
userSettingsFragment.setReadPermissions(Utility.READ_PERMISSIONS);
userSettingsFragment
.setSessionStatusCallback(new Session.StatusCallback()
@Override
public void call(Session session, SessionState state,
Exception exception)
if (state == SessionState.OPENED
&& !session.getPermissions().containsAll(
Utility.PUBLISH_PERMISSIONS))
session.requestNewPublishPermissions(new Session.NewPermissionsRequest(
FacebookAccount.this,
Utility.PUBLISH_PERMISSIONS));
if (session.isOpened()
&& state == SessionState.OPENED_TOKEN_UPDATED)
....Save session access token
);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
if (userSettingsFragment != null)
userSettingsFragment
.onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
【讨论】:
以上是关于Facebook android sdk 的 Session.requestNewPublishPermissions 给出异常的主要内容,如果未能解决你的问题,请参考以下文章
Android - 使用 facebook sdk 在 facebook 墙上发帖的问题
通过 Xamarin.Facebook.Android sdk 登录 Facebook
无法使用 Facebook Android SDK 和 Facebook Audience Network SDK 编译
Android上的Unity Facebook SDK登录错误