Использование Facebook Javascript SDK для публикации на стене друга пользователя - получение правильного ответа, но сообщение не отображается на Facebook - PullRequest
1 голос
/ 27 февраля 2012

Я пытаюсь использовать Facebook Javascript SDK для публикации на стене друга, прошедшего аутентификацию. Я получаю в ответе действительный идентификатор сообщения, но сообщение не отображается в Facebook, а когда я использую проводник FB Graph API для просмотра сообщения, оно просто возвращает false.

Я использую кнопку входа в FB с разрешением «publish_stream» для аутентификации и настроил тестовое приложение FB, чтобы получить действительный идентификатор приложения. Я использую следующий код для публикации на стене друга пользователя:

FB.api('/[USER_ID]/feed', 'post', {
    message: 'Testing the Facebook JavaScript API',
    link: 'http://developers.facebook.com'
}, function(response) {
    if (!response || response.error) {
        console.log('Error occured');
    } else {
        console.log('Post ID: ' + response.id);
        console.dir(response);
    }
});

Это работает, как и ожидалось, когда я заменяю [USER_ID] на «я» - я вижу сообщение на моей временной шкале FB. Однако, когда я использую один из идентификаторов пользователя моих друзей, я получаю ответ с идентификатором сообщения, но сообщение нигде не отображается в их ленте. Мысли

Вот и моя кнопка входа в систему:

<fb:login-button show-faces="false" width="200" scope="publish_stream,publish_actions" perms="publish_stream"></fb:login-button>

Ответы [ 4 ]

2 голосов
/ 13 сентября 2012

У меня была такая же проблема. Я работал над этим как сумасшедший в течение 5 часов. И на самом деле, я думаю, что нет проблем. Единственное, что посты на чужих стенах могут появиться через несколько часов.

Если у кого-то есть такая же проблема, хотя бы подождите несколько часов, прежде чем полностью изменить свой код и сойти с ума.

0 голосов
/ 28 февраля 2012

Я смог решить эту проблему, создав совершенно новое приложение FB с нуля, после чего вышеприведенный код сработал, что привело меня к мысли, что проблема должна быть в конфигурации моего предыдущего приложения Facebook. Единственное существенное отличие, которое я обнаружил, было в приложении> Настройки> Основные> Веб-сайт> URL сайта, я ввел домен для своего приложения, а не полный путь к самой странице приложения. Таким образом, вы действительно можете динамически публиковать сообщения на стене друга, прошедшего проверку подлинности.

0 голосов
/ 28 февраля 2012

здесь с javascript sdk и facebbok c # sdk:

function fb_publish() {
     FB.ui(
       {
         method: 'stream.publish',
         message: 'Message here.',
         attachment: {
           name: 'Name here',
           caption: 'Caption here.',
           description: (
             'description here'
           ),
           href: 'url here'
         },
         action_links: [
           { text: 'Code', href: 'action url here' }
         ],
         user_prompt_message: 'Personal message here'
       },
       function(response) {
         if (response && response.post_id) {
           alert('Post was published.');
         } else {
           alert('Post was not published.');
         }
       }
     );  
  }

и

var client = new FacebookClient("my_access_token");
dynamic parameters = new ExpandoObject();
parameters.message = "Check out this funny article";
parameters.link = "http://www.example.com/article.html";
parameters.picture = "http://www.example.com/article-thumbnail.jpg";
parameters.name = "Article Title";
parameters.caption = "Caption for the link";
parameters.description = "Longer description of the link";
parameters.actions = new {
    name = "View on Zombo",
    link = "http://www.zombo.com",
};
parameters.privacy = new {
    value = "ALL_FRIENDS",
};
parameters.targeting = new {
    countries = "US",
    regions = "6,53",
    locales = "6",
};
dynamic result = client.Post("me/feed", parameters);

, и не могли бы вы пометить его как ответившее, если это поможет:)

0 голосов
/ 27 февраля 2012

Вы не можете оставлять сообщения на стене друга

...