private static final List<String> PERMISSIONS = Arrays.asList("publish_actions");
private boolean pendingPublishReauthorization = false;
à onActivityResult
faire ce
Session session = Session.getActiveSession();
if (session != null) {
// Check for publish permissions
List<String> permissions = session.getPermissions();
if (!isSubsetOf(PERMISSIONS, permissions)) {
pendingPublishReauthorization = true;
Session.NewPermissionsRequest newPermsnRequest = new Session.NewPermissionsRequest(
this, PERMISSIONS);
session.requestNewPublishPermissions(newPermsnRequest);
return;
}
}
installe également dans votre classe.
private boolean isSubsetOf(Collection<String> a,
Collection<String> b) {
for (String string : a) {
if (!b.contains(string)) {
return false;
}
}
return true;
}
En faisant cela, vous serez en mesure d'obtenir toutes les autorisations publiques. vous devez ouvrir la session après avoir obtenu les autorisations de lecture, puis demander uniquement les autorisations de publication.
Quand il vient à facebook et Android, il y a une bibliothèque open source qui peut simplifier tout pour vous - https://github.com/sromku/android-simple-facebook –
Je travaille sur un de ces échantillons HelloFacebook Je viens de changer le nom du paquet et le nom de la classe et de le lancer. Cela fonctionne très bien pour l'appareil sur lequel fb app est installé et dans d'autres ne peuvent pas obtenir l'autorisation publish_actions – user3584264
J'ai suivi l'exemple https://developers.facebook.com/docs/android/share pour poster sur un mur d'utilisateurs. Cela fonctionne très bien si je me connecte à facebook en utilisant des applications email développeur. Avec les non-développeurs, je ne reçois pas les permissions ... Avez-vous trouvé une réponse au problème? –