2010-07-07 5 views
0

J'ai créé et appliqué sur facebook (c'est en mode "bac à sable"). J'ai ajouté un bouton "se connecter à Facebook" dans une page. La connexion fonctionne bien, mais lorsque je tente d'utiliser la méthode stream_publish, je reçois cette erreur:Facebook App, login et stream.publish avec PHP ne fonctionne pas

Uncaught exception 'FacebookRestClientException' with message 'The user hasn't authorized the application to perform this action' in 

J'ai remarqué que lorsque je me connecte, il ne dit pas « Publier du contenu sur votre mur » dans la login popup. Je vois cela quand je me connecte sur digg.com avec le bouton facebook de connexion, mais je ne vois pas cela dans mon application. J'ai donc besoin de définir un certain type de paramètres dans les paramètres de mon application ... Y a-t-il un autre identifiant de connexion qui permettra à mon application d'afficher des données sur son flux?

Mise à jour # 1

Ceci est la ligne que j'utilise pour modifier mon flux:

$ this-> facebook_connect-> client-> stream_publish ($ message, null, null, XXXXX, XXXXXXXX); Où XXXXXXX est mon ID utilisateur sur FB.

Mise à jour # 2 Lorsque je me connecte dans mon profil sur FB, allez dans « Compte », « Paramètres de l'application », « Modifier les paramètres » sur ma demande, je ne vois pas la « Publier du contenu sur mon mur "comme dans l'application" Events "...

Répondre

0

Abra Kadabra

$session = $facebook->getSession(); 
$loginUrl = $facebook->getLoginUrl(
     array(
     'canvas' => 1, 
     'fbconnect' => 0, 
     'req_perms' => 'publish_stream' 
     ) 
); 

Source: http://thinkdiff.net/?p=1767

+0

ressemble à un excellent tutoriel. Je vais jeter un coup d'oeil à celui-ci aussi! Merci beaucoup! J'utilisais l'API REST, je suppose que c'est obsolète ... – mrmuggles

+0

Pour enlever le type d'application "iframe", il suffit de supprimer le paramètre "canvas" .. Ca fonctionne super, merci :) – mrmuggles

0

Vous devez disposer de l'autorisation publish_stream pour publier sur le flux. Je sais que cela semblait évident, mais pour obtenir cette autorisation, et d'autres autorisations étendues, vous devez spécifiquement les demander. Je ne sais pas exactement comment faire avec PHP, mais ces liens pourraient aider:

Extended Permissions

Authentication (voir la section "Demande d'autorisations étendues")

PHP SDK Tutorial

+0

Oui, j'ai vu cette autorisation "publier un flux" quelque part. c'est juste que l'API facebook DOC est si claire (sarcasme). Merci, je vais jeter un oeil à ces pages! – mrmuggles