Note that there are some explanatory texts on larger screens.

plurals
  1. POhow can i get two permissions sequentially?
    primarykey
    data
    text
    <p>i'm developing android app with facebook SDK 3.0 new. I know the facebook's policy that i can not request two permissions at the same time and also can not request write permissions(publish_stream, publish_acition..etc) at the login button.</p> <p>So, my question is, how can i request 'publish_stream' permissions automatically after user clicked logging button?</p> <p>in my source code below,</p> <pre><code>private void onSessionStateChange(Session session, SessionState state, Exception exception) { if (state.isOpened()) { if (pendingPublishReauthorization &amp;&amp; state.equals(SessionState.OPENED_TOKEN_UPDATED)) { pendingPublishReauthorization = false; publishFeed(userName); } m_pd.show(); Request.executeMeRequestAsync(session, new Request.GraphUserCallback() { @Override public void onCompleted(GraphUser user, Response response) { if (user != null) { String username=buildUserInfoDisplay(user); userName=username; saveAccount(username, "facebook"); Log.d(com.dress.folio.Constants.FACEBOOK_TAG, "login success"); publishFeed(userName); m_pd.dismiss(); //Activity GetActivity=getActivity(); //if(GetActivity != null) GetActivity.finish(); } } }); } else if (state.isClosed()) { Log.i(com.dress.folio.Constants.FACEBOOK_TAG, "Logged out..." + exception); } } </code></pre> <p>when user clicked login button, onSessionStateChange() is called. so i tried to request 'publish_stream' with 'publishFeed()' after Request.executeMeRequestAsync(session, new Request.GraphUserCallback().</p> <pre><code>Request.executeMeRequestAsync(session, new Request.GraphUserCallback() { @Override public void onCompleted(GraphUser user, Response response) { if (user != null) { String username=buildUserInfoDisplay(user); userName=username; saveAccount(username, "facebook"); Log.d(com.dress.folio.Constants.FACEBOOK_TAG, "login success"); publishFeed(userName); m_pd.dismiss(); //Activity GetActivity=getActivity(); //if(GetActivity != null) GetActivity.finish(); } } }); </code></pre> <p>publishFeed() is like : </p> <pre><code>private void publishFeed(String username) { Session session = Session.getActiveSession(); SessionState state= session.getState(); if (session != null){ Log.d(com.dress.folio.Constants.FACEBOOK_TAG, "in publishstory(): "+ state); // Check for publish permissions List&lt;String&gt; permissions = session.getPermissions(); if (!isSubsetOf(PERMISSIONS, permissions) ) { pendingPublishReauthorization = true; if(state == SessionState.OPENED_TOKEN_UPDATED) { Log.d(com.dress.folio.Constants.FACEBOOK_TAG, "in publishstory() if : OPENED_TOKEN_UPDATED" ); Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(this, PERMISSIONS); session.requestNewPublishPermissions(newPermissionsRequest); } return; } Bundle postParams = new Bundle(); postParams.putString("name", username + " is logged in"); // postParams.putString("caption", "Build great social apps and get more installs."); postParams.putString("description", "get the dress!!"); postParams.putString("link", "https://www.facebook.com/pages/Dressfolio/183665935091337"); //dressfolio facebook page address postParams.putString("picture", "https://MY_APPLICATION.com/asset/facebook/app1/thumb2.png"); //thumbnail Request.Callback callback= new Request.Callback() { public void onCompleted(Response response) { Log.d(com.dress.folio.Constants.FACEBOOK_TAG, "callback()" ); FacebookRequestError error = response.getError(); if (error != null) { Log.d(com.dress.folio.Constants.FACEBOOK_TAG,"news feed error!" + error.toString()); } else { Log.d(com.dress.folio.Constants.FACEBOOK_TAG, "News Feed Posting success()" ); } } }; Request request = new Request(session, "me/feed", postParams, HttpMethod.POST, callback); RequestAsyncTask task = new RequestAsyncTask(request); task.execute(); } } </code></pre> <p>but this always doesn't work because Sessionstate doesn't in 'OPENED_TOKEN_UPDATED' state. How can i do this?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload