Comment obtenir (et utiliser) des autorisations étendues dans Facebook avec Python / Django

StackOverflow https://stackoverflow.com/questions/1967438

Question

Je suis en train d'écrire une application simple qui permet à un utilisateur accorder mon autorisation de code à écrire sur le flux Facebook de sa page. Si je comprends bien, il devrait être aussi facile que:

  1. Avoir l'utilisateur clique sur un bouton qui lance une fenêtre contenant la page dans mon application Facebook.
  2. Dans cette page, ils cliquent sur quelque chose qui accorde stream_publish à mon application et attribue cette autorisation à leur page.
  3. fenêtre se ferme, j'ai maintenant toutes les informations nécessaires pour exécuter un script dans cron pour pousser des choses dans le flux de cette page.

J'ai lu le wiki pour les jours. Notes sur pyfacebook sont au moins un an de la date, et les gens ont m'a signalé la socialauth application pour Django qui semble être aussi à jour et axée sur le ciblage des utilisateurs par opposition à leurs pages. Je ne peux même pas faire # 1 là-bas, et encore moins # 2 et 3.

Si quelqu'un pouvait me montrer comment utiliser Django / Python pour demander / obtenir la permission d'écrire à un flux Facebook, ce serait un bon début.

Toute aide serait grandement appréciée.

Était-ce utile?

La solution 2

Après beaucoup de bricoler, je semble avoir résolu tous mes problèmes dans Facebookland:

  1. Active qu'engendrer un utilisateur clique sur un bouton pour accorder des autorisations est aussi facile que Caio Romão a dit qu'il était. Pour ma part bien, je trouve que les diriger vers le lien Desktop App Facebook était beaucoup plus facile et plus fiable.
  2. En utilisant cette méthode de lien, Facebook vous permet de spécifier enable_profile_selector=1 qui fera en sorte que la liste des pages est générée à partir de laquelle l'utilisateur peut sélectionner les pages (le cas échéant) accorder ces autorisations.
  3. Pour celui-ci cependant, Facebook est totalement cassé . Alors que dans # 2, ils permettent à l'utilisateur de sélectionner une page à accorder des autorisations, ils ne passent pas ces informations sur l'application , soit par le biais d'un POST ou dans les en-têtes. Il est tout simplement pas là. , Vous avez au lieu de faire un truc laid avec FQL et quelques questions supplémentaires à l'utilisateur de le faire fonctionner.

Quoi qu'il en soit, je Il détaille tous sur mon blog si quelqu'un est intéressé. Merci pour votre aide!

Autres conseils

Avez-vous regardé minifb ? Leur github page pour pyfacebook montre que la bibliothèque est encore en vie)

Alors, pour votre scénario, vous aurez besoin:

  1. Demander la permission "stream_publish". Il y a quelques façons de le faire, mais je fait aller pour la plus facile: soumettre un formulaire (note que je ne l'ai jamais fait une application pour facebook, je suis sans doute mal assumer cette approche est la plus simple: -)
  2. Utilisez votre application normalement: appeler les méthodes de l'API en utilisant le user_id de l'utilisateur qui a autorisé votre application (vous devrez l'enregistrer) et, étant donné que vous avez été autorisé, il ne devrait pas manquer
  3. .

Pour cela, essentiellement, ajoutez ce formulaire sur votre modèle:

<form promptpermission="publish_stream">
<input type="submit" value="Allow Publish Stream">
</form>

Kudos aux développeurs Facebook, par la manière. Très belle documentation officielle.

EDIT : Je ne suis pas autorisé à commenter pourtant si: Si vous face à des problèmes obtenir uide, vérifiez cette question et les références.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top