Obtenir l'autorisation publish_action après avoir reçu les autorisations de lecture de Facebook
Je suis intégration Facebook
connecter à ma demande. Je suis en mesure d'obtenir les autorisations de lecture, mais comment obtenir les autorisations de publication de Facebook SDK.
C'est de cette façon que je demande les autorisations pour lire:
@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);
}
}
});
Si l'utilisateur a accordé la permission, je suis en mesure d'obtenir access_token
et de faire mes choses sur onActivityResult
. Voici ce que je fais avec ça:
@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);
}
}
});
}
}
});
}
}
J'ai lu Facebook Developer
doc comme expliqué ici Autorisations - Facebook Développeursque je ne peux pas demander d'autorisations de publication avec l'autorisation de lecture.
Premier utilisateur aura à se poser pour lire, et lorsque l'utilisateur autorizes alors que nous pouvons demander des autorisations de publication.
Comment puis-je obtenir des autorisations de publication de Facebook connecter après que l'utilisateur accordé des autorisations de lecture.
De l'aide sera appréciée.
source d'informationauteur Anupam
Vous devez vous connecter pour publier un commentaire.
J'ai eu la réponse à ma question. Juste avoir à ouvrir de session après l'obtention des autorisations de lecture et ensuite demander d'autorisations de publication. Voici ce que j'ai fait:
Ajouter ceci dans votre
onActivityResult
:Également obtenir cette méthode intégrée dans le code:
En faisant ces choses, je suis capable de lire aussi bien les autorisations de publication simultanément.
Espère que cela aidera d'autres.
De l'facebook sdk 3.0 documents vous ne pouvez pas donner le lire et l'autorisation de publier simultanément. Mais une fois que vous ouvrez la session avec l'autorisation de lecture plus tard, vous pouvez mettre à jour la présente session de publier l'autorisation, par UiLifecycleHelper classe. Une fois la session, les modifications de l'état de SessionState.OPENED_TOKEN_UPDATED signifie session de mise à jour avec de la publication de l'autorisation. Voici un exemple de code pour vous, espérons que cette aide vous.