2013-02-21 54 views
3

如何在未将Facebook登录按钮放入我的应用程序中的情况下使用android sdk共享照片。 (我希望他们去Facebook应用程序授权并返回时,他们点击分享按钮,而不是先登录然后点击共享两个步骤)。具体来说,我会做一个Facebook的开放图形张贴到/我/照片,以便它会上传到我的默认应用程序相册。但是,即使用户通过facebook身份验证提示单击时,我也会收到未登录的会话错误。如何在不使用应用程序登录按钮的情况下通过Facebook android sdk分享照片

final Session session = Session.getActiveSession(); 


Session.openActiveSession(this, true, new Session.StatusCallback() { 

    @Override 
    public void call(final Session session, final SessionState state, 
      final Exception exception) { 
     Request request = Request.newUploadPhotoRequest(session, image, new Request.Callback() { 
      @Override 
      public void onCompleted(Response response) { 
        Toast.makeText(getApplicationContext(), "Fact shared", Toast.LENGTH_SHORT).show(); 
       } 
     }); 
     request.executeAsync(); 
    } 
}); 
+0

你能够做到这一点吗?我正在寻找完全相同的解决方案 – Casper 2013-12-23 18:16:37

回答

0

有几个与你的代码问题:

  1. 为了发布一个照片,你需要发布的权限,这就需要另一个requestNewPublishPermissions叫你先打开会议之后。

  2. 您正在call()方法中立即提出请求,而不检查是否session.isOpened()。这是有问题的,因为:

    a。会话会经历很多状态(包括OPENING,OPENED, 等),所有这些状态都会导致call()被调用,并且您可以在仅在OPENED或OPENED_TOKEN_UPDATED 状态下发出请求;

    b。开启 会话期间可能会有例外情况(如用户取消),这可能导致会话关闭 。您需要使用 session.isOpened()检查来保护您的请求。

相关问题