Sto integrando Facebook
accesso nella mia applicazione. Sono in grado di ottenere le autorizzazioni di lettura ma come ottenere le autorizzazioni di pubblicazione da Facebook SDK.Ottieni il permesso di pubblicazione_action dopo aver ottenuto le autorizzazioni di lettura da Facebook
Questo è come mi sto chiedendo i permessi di lettura:
@Override
public void onClick(View v) {
Session currentSession = Session.getActiveSession();
if (currentSession == null
|| currentSession.getState().isClosed()) {
Session session = new Session.Builder(context).build();
Session.setActiveSession(session);
currentSession = session;
}
if (currentSession.isOpened()) {
// Do whatever u want. User has logged in
} else if (!currentSession.isOpened()) {
// Ask for username and password
OpenRequest op = new Session.OpenRequest((Activity) context);
op.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK);
op.setCallback(null);
List<String> permissions = new ArrayList<String>();
permissions.add("user_likes");
permissions.add("email");
permissions.add("user_birthday");
permissions.add("user_location");
permissions.add("user_interests");
permissions.add("friends_birthday");
op.setPermissions(permissions);
Session session = new Builder(MainActivity.this).build();
Session.setActiveSession(session);
session.openForRead(op);
}
}
});
Se l'utente ha concesso l'autorizzazione sono in grado di ottenere access_token
e fare le mie cose su onActivityResult
. Qui è quello che sto facendo con quel:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (Session.getActiveSession() != null)
Session.getActiveSession().onActivityResult(this, requestCode,
resultCode, data);
Session currentSession = Session.getActiveSession();
if (currentSession == null || currentSession.getState().isClosed()) {
Session session = new Session.Builder(context).build();
Session.setActiveSession(session);
currentSession = session;
}
if (currentSession.isOpened()) {
Session.openActiveSession(this, true, new Session.StatusCallback() {
@Override
public void call(final Session session, SessionState state,
Exception exception) {
if (session.isOpened()) {
Request.executeMeRequestAsync(session,
new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user,
Response response) {
if (user != null) {
TextView welcome = (TextView) findViewById(R.id.welcome);
TextView access_token_txt = (TextView) findViewById(R.id.access_token);
TextView email_txt = (TextView) findViewById(R.id.email);
access_token = session.getAccessToken();
firstName = user.getFirstName();
fb_user_id = user.getId();
access_token_txt.setText(access_token);
JSONObject graphResponse = response
.getGraphObject().getInnerJSONObject();
fbEmail = null;
try {
fbEmail = graphResponse.getString("email");
} catch (JSONException e) {
e.printStackTrace();
}
email_txt.setText(fbEmail);
}
}
});
}
}
});
}
}
Ho letto Facebook Developer
doc come spiegato qui Permissions - Facebook Developers, che non posso chiedere autorizzazioni di pubblicazione con autorizzazioni di lettura.
Il primo utente dovrà chiedere la lettura e quando l'utente si autorizza, possiamo chiedere autorizzazioni di pubblicazione.
Come è possibile ottenere le autorizzazioni di pubblicazione da Facebook accedere dopo aver concesso le autorizzazioni di lettura.
Qualsiasi tipo di aiuto sarà apprezzato.
sono bloccato su login facebook. Posso accedere quando app nativa disponibile ma non in grado di accedere e autorizzare app se l'app nativa non è disponibile. ecco la mia domanda puoi fornire una risposta a questo. [http://stackoverflow.com/questions/21336314/facebook-after-login-not-coming-back-but-asking-login-again] –
Ho commentato la tua domanda provalo e rispondi se funziona. – Anupam