используя Facebook Stream Publish - PullRequest
0 голосов
/ 01 мая 2011

Я хочу опубликовать URL-адрес в виде вложения на стене друзей:

var attachment={'name':'favor','href':'http://128.196.239.71/movie.php?mid=<?php echo  $_GET['mid']; ?>'};
                                         Facebook.streamPublish('',attachment,null,friends[i],comment,callback);

Выполнение вышесказанного дает мне неопределенный Facebook, что мне делать, чтобы исправить это?

ДелатьМне нужно установить специальное разрешение, чтобы сделать это с отправителем этого сообщения?

1 Ответ

2 голосов
/ 01 мая 2011

Вам необходимо разрешение stream.publish для использования метода stream.publish или эквивалентного вызова API графа.

Вы можете проверить, что пользователь уже предоставил это разрешение, примерно так:

FB.getLoginStatus(function(response) { if (response.perms) { /* check perms */ } })

Вы можете запросить разрешение примерно так:

FB.login(function(response) { /* check perms */ }, {scope: 'publish_stream'})

Затем в ответе вы можете проверить, действительно ли оно было предоставлено, тогда вы сможете выполнять вызовы потоковой публикации.

Однако я не распознаю формат вашего звонка «Facebook.streamPublish». Я думаю, что новый API требует, чтобы вы звонили больше как

FB.api({method: 'stream.publish', message: 'hello'}, function(response) {})

В качестве альтернативы всему этому вы можете использовать API диалогов, чтобы создать сообщение и показать его пользователю, чтобы они одобрили или не одобрили его. Это не требует разрешения stream.publish. Примерно так (пример приведен в документации FB.ui API):

 FB.ui(
   {
     method: 'feed',
     name: 'Facebook Dialogs',
     link: 'http://developers.facebook.com/docs/reference/dialogs/',
     picture: 'http://fbrell.com/f8.jpg',
     caption: 'Reference Documentation',
     description: 'Dialogs provide a simple, consistent interface for applications to interface with users.',
     message: 'Facebook Dialogs are easy!'
   },
   function(response) {
     if (response && response.post_id) {
       alert('Post was published.');
     } else {
       alert('Post was not published.');
     }
   }
 );

При изменении курса Facebook, я надеюсь, что часть этой информации все еще будет точной к тому времени, когда вы ее прочитаете (или даже точна с самого начала).

...