Ссылки, размещенные на странице Facebook, не отображаются

Я работаю над небольшим модулем, который должен автоматически размещать ссылки на странице Facebook. Я сделал следующую настройку:

  • Создал страницу Facebook (та, которая будет отображать ссылки)
  • Создал приложение для Facebook.
  • Добавлено приложение как в профиль администратора страницы, так и на страницу Facebook со следующими разрешениями: publish_stream, manage_pages

Чтобы получить действительный токен доступа (вручную на данный момент - я знаю, что это не рекомендуется, но в моем случае это работает), я сделал следующее:

  1. Зашел как администратор страницы
  2. Перейдите на страницу: https://developers.facebook.com/tools/access_token/
  3. Скопируйте токен пользователя и сделайте его постоянным, запустив следующий URL-адрес: https://graph.facebook.com/oauth/access_token?client_id={app id}&client_secret={секрет приложения}&grant_type=fb_exchange_token&fb_exchange_token={the токен, который я скопировал ранее}
  4. Получите токен доступа к странице из токена пользователя, полученного на шаге 3, выполнив GET для: https://graph.facebook.com/me/accounts?access_token={бессрочный токен доступа}

Из json, который я получаю после шага 4, я копирую токен доступа интересующей меня страницы и публикую ссылку со следующим кодом С#:

try
        {
            dynamic data = new ExpandoObject();

            var fbm = message as FacebookMessage;

            data.access_token = ConnectionData.AuthenticationToken;
            data.message = fbm.Message;
            data.link = fbm.Link;
            data.name = fbm.Name;
            data.caption = fbm.Caption;
            data.description = fbm.Description;
            if (!String.IsNullOrEmpty(fbm.Icon))
            {
                data.picture = fbm.Icon;
            }
            var @params = ((ExpandoObject)data).ToUrl();

            var _currentRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(String.Format("https://graph.facebook.com/{0}/feed?{1}", _currentEndpoint.ObjectID, @params));
            _currentRequest.Method = "POST";
            _currentRequest.ContentType = "application/json; charset=utf-8";
            _currentRequest.UserAgent = "Mozilla/4.0 (compatible; Windows NT)";
            _currentRequest.Accept = "*/*";
            _currentRequest.CookieContainer = new CookieContainer();
            _currentRequest.KeepAlive = false;
            //_currentRequest.Credentials = System.Net.CredentialCache.DefaultCredentials;

            //using (var sw = new StreamWriter(_currentRequest.GetRequestStream(), Encoding.UTF8))
            //{
            //    sw.Write(json);
            //}

            string json;
            var resp = _currentRequest.GetResponse();

            using (StreamReader sr = new StreamReader(resp.GetResponseStream()))
            {
                json = sr.ReadToEnd();
            }

            var jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            var output = jsonSerializer.Deserialize<dynamic>(json);

            return new OperationStatus();
        }
        catch (Exception ex)
        {
            return new OperationStatus { Exception = ex };
        }
    }

«_currentEndpoint.ObjectID» — это идентификатор объекта страницы. POST выполнен успешно, и я вижу, что ссылка публикуется как на стене моего администратора, так и на самой странице, пока я вхожу в систему как администратор. Чем раньше я выйду из системы, тем больше я не увижу ни размещенных ссылок, ни тех, кому понравилась страница.

Что дает? Как сделать, чтобы ссылки отображались на стене страницы, а также на стенах людей, которым понравилась страница. Спам на странице проверил, ссылок своих там не вижу, а из настроек приватности вроде все видно.


person Iancu    schedule 15.02.2013    source источник


Ответы (1)


После прочтения этого сообщения: Размещение ссылки на страницу, которая не отображается ? Наконец-то я его запустил. Проблема, кажется, была с токеном доступа, но я до сих пор не понял, что пошло не так: вот что я сделал в конце:

  • перешел в обозреватель Graph API http://developers.facebook.com/tools/explorer/
  • отправил GET мне/учетным записям
  • в ответ я получил список доступных учетных записей (включая учетную запись для моего приложения)
  • взял токен доступа из этого ответа.

Кажется, это дало мне токен доступа, который мне нужен, чтобы размещать видимые ссылки для всех на стене страницы.

person Iancu    schedule 14.03.2013