2014-03-06 52 views
3

我张贴在我的Facebook的SDK的Android墙上的应用程序,但我得到 我会后我下面的代码(#200)的用户无权执行此操作的Android SDK的Facebook

{响应:responseCode:403,graphObject:null,错误:{HttpStatus:403,errorCode:200,errorType:OAuthException,errorMessage:(#200)用户尚未授权应用程序执行此操作},isFromCache:false} private void postStatusUpdate(final String fbpost){ Log.d(“postStatusUpdate”,fbpost);

 Session.openActiveSession(this, true, new Session.StatusCallback() { 
      // callback when session changes state 
      @SuppressWarnings("deprecation") 
      @Override 
      public void call(final Session session, SessionState state, Exception exception) { 
      if(session.isClosed()){ 
       Log.i("postStatusUpdate session.isClosed", "message not posted session is closed"); 
      } 
      if (session.isOpened()) { 
       Log.i("session.isOpened", "session.isOpened"); 

      if (!session.isOpened()) { 
       Log.w("myConsultant11111111111","Session closed"); 
       Session.OpenRequest openRequest = null; 
       openRequest = new Session.OpenRequest(TabActivity.this); 

       if (openRequest != null) { 
        openRequest.setDefaultAudience(SessionDefaultAudience.FRIENDS); 
        openRequest.setPermissions(Arrays.asList("publish_stream","publish_actions")); 
        openRequest.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK); 

        session.openForPublish(openRequest); 
       } 

      } 

      Log.i("session.getPermissions() tab", ""+session.getPermissions()); 


       //fbpostcheck = "if"; 

       // make request to the /me API 
       Request.executeMeRequestAsync(session, new Request.GraphUserCallback() { 

        // callback after Graph API response with user object 
        @Override 
        public void onCompleted(GraphUser user, Response response) { 
        //session.requestNewReadPermissions(newPermissionsRequest2); 

        if (user != null) { 
         try { 

         Session session = Session.getActiveSession(); 
         //session.requestNewReadPermissions(newPermissionsRequest); 
         if (!session.isOpened() && !session.isClosed()) { 
          // session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback)); 

         } else { 
          // Session.openActiveSession(this, true, statusCallback); 
          Log.d("myLogs", "Test 1"); 
          final String message = fbpost; 
          Request request = Request 
            .newStatusUpdateRequest(Session.getActiveSession(), message, new Request.Callback() { 
             @Override 
             public void onCompleted(Response response) { 
              //showPublishResult(message, response.getGraphObject(), response.getError()); 
              Log.i("onCompleted", response.toString()); 
              Log.i("getGraphObject", ""+response.getGraphObject()); 

              showPublishResult(message, response.getGraphObject(), response.getError()); 
             } 

             private void showPublishResult(String message,GraphObject graphObject,FacebookRequestError error) { 
              // TODO Auto-generated method stub 
              String title = null; 
              String alertMessage = null; 
              if (error == null) { 
               title = "Success"; 

               alertMessage = "All is good"; 
               //Toast.makeText(getApplicationContext(),"Posted successfully", Toast.LENGTH_SHORT).show(); 
               AppMsg.makeText(TabActivity.this, "Posted to facebook", AppMsg.STYLE_INFO).show(); 
              } else { 
               title = "Error"; 
               alertMessage = error.getErrorMessage(); 
               Log.i("alertMessage", alertMessage.toString()); 
               AppMsg.makeText(TabActivity.this, "Error in Posting Message on facebook\n"/*+alertMessage*/, AppMsg.STYLE_INFO).show(); 
               //Toast.makeText(getApplicationContext(),alertMessage, Toast.LENGTH_LONG).show(); 

              } 
             } 
            }); 
          request.executeAsync(); 
         } 

        } catch (Exception e) { 
         // TODO Auto-generated catch block 
         Log.i("Exception user data", e.toString()); 
        } 

        } 

        } 

       }); 




      } 

      } 

     }); 


    } 
+0

你确定你收集“publish_actions”权限? – Tobi

+0

这是我正面临的问题,publish_stream的权限对话在会话打开时未打开,您能指导我在哪里更改我的代码? – Achin

+0

有一个关于如何实现登录的例子,你可以在https://developers.facebook.com/docs/android/scrumptious/authenticate找到,如果你不知道它已经... – Tobi

回答

相关问题