2009-12-08 8 views
1

Je veux publier par programme des messages sur la page facebook de mon utilisateur de site en leur nom, chaque fois que certains événements sont déclenchés depuis mon site. Je vais avoir un cron qui exécute stream.publish en cas de besoin.Facebook - Stream.publish

Je regarde stream.publish pour accomplir cela, ce qui nécessite une permission prolongée de l'utilisateur facebook. Étant donné que l'utilisateur ne sera pas impliqué dans la publication, comment puis-je obtenir l'autorisation étendue publish_stream de ma base d'utilisateurs? Peuvent-ils le faire pendant qu'ils s'inscrivent sur mon site ou s'ils me fournissent leur nom d'utilisateur & mot de passe, puis-je le faire pour eux?

http://wiki.developers.facebook.com/index.php/Using_the_Open_Stream_API#About_the_publish_stream_Permission

Répondre

2

La seule façon de le faire est via une boîte de dialogue des autorisations. Si vous utilisez facebook connect consultez FB.Connect.showPermissionsDialog sinon vous pouvez facilement inclure FB:prompt-permission dans votre fichier fbml. Si vous utilisez une connexion iframe/facebook, vous pouvez probablement appeler FB.Connect.showPermissionsDialog sans aucune action de l'utilisateur (de sorte que la boîte de dialogue s'affichera au chargement de la page). Dans le cas FBML, vous devrez indiquer à votre utilisateur de cliquer sur le lien qui affiche la fenêtre.

0

Vous devez demander les autorisations étendues offline_access et stream_publish. Vous pouvez le faire quand ils s'inscrivent pour votre application. Peut-être que vous avez une page de paramètres où l'utilisateur active ces notifications, et quand ils l'allument, vous pouvez demander les autorisations étendues. Lorsque votre utilisateur vous attribue offline_access, sa clé de session Facebook change et la valeur expire passe à zéro. Ceci est connu dans les cercles Facebook comme une "touche de session infinie" Vous devez enregistrer cette clé de session pour une utilisation ultérieure dans votre travail cron. Vous pouvez ensuite appeler stream.publish en utilisant la clé de session infinie en tant que paramètre, et il passera même si l'utilisateur n'est pas connecté à votre site ou à Facebook à ce moment-là.

Questions connexes