2014-06-25 95 views
1

我知道這個問題已被問過很多次。但是,這些答案都沒有爲我工作。當我用不同的用戶登錄時,顯示錯誤。如果登錄憑證管理這個應用程序,發佈在牆上工作正常。請嘗試解決這個問題。在牆上發帖:用戶還沒有授權應用程序來執行此操作在android

這裏是我的代碼:

如果(isFB){//調用FB登錄

 Session session = new Session(this); 
     Session.setActiveSession(session); 

     Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS); 

     Session.StatusCallback statusCallback = new Session.StatusCallback() { 
      @Override 
      public void call(Session session, SessionState state, 
        Exception exception) { 
       String message = "Facebook session status changed - " 
         + session.getState() + " - Exception: " + exception; 
       // Toast.makeText(FacebookShareActivity.this, message, 
       // Toast.LENGTH_SHORT).show(); 
       Log.w("Facebook test", message); 

       if (session.isOpened() 
         || session.getPermissions().contains(
           "publish_actions")) { 
        publishToWall(); 
       } else if (session.isOpened()) { 
        OpenRequest open = new OpenRequest(
        RegisterActivity.this).setCallback(this); 
        List<String> permission = new ArrayList<String>(); 
        permission.add("publish_actions"); 
        open.setPermissions(permission); 
        Log.w("Facebook test", "Open for publish"); 
        session.openForPublish(open); 
       } 
      } 
     }; 

     if (!session.isOpened() && !session.isClosed() 
       && session.getState() != SessionState.OPENING) { 
      session.openForRead(new Session.OpenRequest(this) 
        .setCallback(statusCallback)); 
     } else { 
      Log.w("Facebook test", "Open active session"); 
      Session.openActiveSession(this, true, statusCallback); 
     } 
    } 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    Session.getActiveSession().onActivityResult(this, requestCode, 
      resultCode, data); 
} 
void publishToWall() { 
    Session session = Session.getActiveSession(); 

    Bundle postParams = new Bundle(); 
    postParams.putString("message", "hi"); 

    Request request = new Request(Session.getActiveSession(), "me/feed", 
      postParams, HttpMethod.POST, callback); 

    RequestAsyncTask task = new RequestAsyncTask(request); 
    task.execute(); 
} 
+0

哪個SDK您使用的? –

回答

0

v2.0起,比public_profileemailuser_friends其他權限必須審查提交Facebook的。在批准之後,只有開發人員/測試人員/管理員以外的用戶才能使用其功能。

See here登錄提交更多detials。

而且,與其他用戶在測試前務必讓您的應用現場 -

enter image description here

+0

謝謝。@ Sahil Mittal – preethi

相關問題