Размещение ссылки на фан-страницу через приложение - PullRequest
3 голосов
/ 01 сентября 2011

У нас есть пользовательская CMS, которую пользователи могут публиковать на «фан-странице» компании, когда они публикуют сообщение. Этот код использует код FacebookAPI, предоставленный Facebook, для использования API-интерфейса Graph в приложении C # (фактически веб-сервис WCF).

У нас были различные проблемы с публикацией ранее (см. эту ошибку и эту дискуссию ). Это работало некоторое время, но теперь возвращает запрос 400 / Bad.

Я пробовал два разных (известных ранее) токена API. В этой настройке код не изменился за несколько месяцев.

Мне интересно, как я могу понять, почему это больше не будет публиковать. Что-то изменилось с токенами, которые он запрашивал?

Это код, который я использую:

FacebookAPI api = new FacebookAPI(token);

Dictionary<string, string> postArgs = new Dictionary<string, string>();

postArgs["link"] = url;
postArgs["message"] = message;

try
{
    JSONObject jsonresult = api.Post("me/links", postArgs);
    result = "ok";
}
catch (Exception e)
{
    result = "Post Failed - " + e.Message.ToString();
}

Мое исключение - запрос 400 / Bad

обновление: Я также заметил, что согласно Документам аутентификации , некоторые из токенов теперь имеют срок действия, которого у моего, похоже, нет. Может ли это быть проблемой? Например, мой токен представляет собой строку ~ 100 символов, с 4 секциями, разделенными 3 трубами (|). Их примеры имеют дополнительный & expires_in = 64090.

1 Ответ

0 голосов
/ 04 сентября 2011

Для того, чтобы размещать ссылки или статусы, вам нужен пользователь access_token и разрешение на ссылки.Убедитесь, что пользователь предоставил приложению, выполняющему ссылку-публикацию, команду publish_stream perms.Кроме того, параметр сообщения следует игнорировать в сообщении, но я не буду предварительно заполнять его, чтобы избежать ошибок.

Вы можете опубликовать ссылку от имени пользователя, отправив запрос HTTP POST в PROFILE_ID / feedс разрешениями publish_stream и следующими параметрами.

http://developers.facebook.com/docs/reference/api/user/#links

образец javascript, который я использую для создания постов.

window.feedthis = function(shf,point,clk) {
     ptsT=point-shf+clk;
             FB.ui({ method: 'feed', 
           // message: 'Testing Feed',
            caption: 'I survived '+shf+' Levels in Another Grid. I earned '+point+' points with '+clk+' clicks.',
            name: 'Another Grid',
            link: 'http://apps.facebook.com/anothergrid/?ref=link',
            //to: '391793380398',
            description: 'Another Grid, A color elemination Puzzle game by Shawn E Carter.',
            picture: 'https://shawnsspace.com/ShawnsSpace.toon.nocolor..png',
            properties: [{ text: 'Play the Game', href: 'http://apps.facebook.com/anothergrid/?ref=achievement'}
                            //{ text: 'ShawnsSpace', href: 'http://apps.facebook.com/shawnsspace/?ref=anothergrid'}
                            ],
            actions: [
            { name: 'Another Grid', link: 'http://apps.facebook.com/anothergrid/'}
            ]       
            });
            };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...