Вопрос по facebook, facebook-graph-api – Как опубликовать новостную ленту, если пользователю понравилась страница?

1

Недавно я слышал, что с помощью API Open Graph Facebook, можно публиковать в новостной ленте пользователя, если ему понравилась страница.

Я старался изо всех сил следовать примеру и иметь создал фиктивную страницу.

Насколько я понимаю, нужно сделать следующее:

Создайте необходимые теги Open Graph, включая тег для вашего приложения Facebook Я проверял это с помощью Open Graph Debugger Добавить кнопку «Мне нравится» на страницу "Мне нравится" на странице

Получить токен доступа (чтобы опубликовать сообщение)

curl -F grant_type=client_credentials -F client_id=MY_APP_ID -F client_secret=MY_APP_SECRET -F redirect_uri=https://graph.facebook.com/oauth/access_token https://graph.facebook.com/oauth/access_token

Пост к ленте

curl -F 'access_token=ACCESS_TOKEN_FROM_STEP_4' -F 'message=Hello Likers' -F 'id=http://dl.dropbox.com/u/3618086/test.html' https://graph.facebook.com/feed

Именно в этот момент сообщение должно быть отправлено всем, кому понравилась страница. Вместо этого я получаю следующую ошибку:

{
    "error": {
        "message": "(#100) http:\/\/dl.dropbox.com\/u\/3618086\/test.html does not resolve to a valid user ID",
        "type": "OAuthException",
        "code":100
    }
}

В этот момент я в замешательстве. Я прочитал эти вопросы:

Как мне опубликовать группу людей, которым понравилась веб-страница или объект? Как вы программно публикуете в фиде Facebook, связанном с «любимой» страницей?Facebook Исключение № 100: не разрешается с действительным идентификатором пользователя Как программно опубликовать в фиде Facebook понравившуюся веб-страницу? Невозможно опубликовать в фиде Facebook

И попробовали их предложения, но ничего не получилось. Какой шаг я пропускаю?

Я могу предоставить более подробную информацию; Я просто не хотел, чтобы вопрос был слишком длинным.

Маркер доступа к приложению позволяет размещать сообщения на стене приложения, но не на стене пользователя. Yan Berk
redirect_uri на шаге 4 должен вести на ваш сайт, а не:https://graph.facebook.com/oauth/access_token Yan Berk
Когда я это делаю, токен доступа, который я получаю, тот же. NT3RP
Может ли приложение не публиковать на странице пользователя? Или, наоборот, может ли приложение не публиковать на своей странице? NT3RP
Получаемый токен является токеном доступа к приложению, а не токеном доступа пользователя. Читайте здесь, как получить токен пользователя: Developers.facebook.com / документы / аутентификации / на стороне сервера Yan Berk

Ваш Ответ

1   ответ
4

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

Шаги, которые я перечислил выше, действительно верны, но есть несколько вещей, которые требуют дальнейшего объяснения, чтобы избежать ловушек, в которые я попал.

Размещение людей, которым понравился элемент в Facebook Шаг 1. Создание приложения для Facebo Вам нужно будет посетитьFacebook Developers страницу и создайте новое приложение Вам не нужно пространство имен или веб-хостинг для вашего приложения Заполните данные для вашего заявления В первую очередь вам нужно будет выбрать «Веб-сайт с Facebook Login».адрес сайт должно совпадать с местом размещения вашего сайта. В моем примере я размещаюсь в общей папке dropbox, поэтому я использовалhttp://dropbox.com Установите свойApp Domain на имя хоста вашего сайта URL. В моем случае этоdropbox.com который позволит Facebook использовать*.dropbox.com. Я также мог бы сделатьdl.dropbox.com конкретно. Шаг 2. Создание фиктивной страницы

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

Убедитесь, что ваша страница правильная, особенно теги открытого графика. Что значитправильны выглядит как? Вы можете проверить мою фиктивную страницу, но я включил<HEAD> ниже:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://ogp.me/ns#">
<head>
    <title>Test</title>
    <link href="http://dl.dropbox.com/u/3618086/test2.html" rel="canonical" />
    <meta property="fb:app_id" content="YOUR_APP_ID">

    <meta property="og:type" content="product">
    <meta property="og:title" content="PAGE TITLE" /> 
    <meta property="og:description" content="PAGE DESCRIPTION" /> 
    <meta property="og:image" content="http://www.stanford.edu/group/cardinalballet/Pictures/WebsitePics/portrait-placeholder.jpg">

    <meta property="og:site_name" content="SITE_NAME"/>
    <meta property="og:url" content="http://dl.dropbox.com/u/3618086/test2.html">
</head>
Критическая часть этого -fb:app_id (который должен быть идентификатором вашего приложения Facebook) иog:type. Есть несколькоtypes, а некоторые не имеют разрешения на публикацию. Для получения дополнительной информации посетите Документация API Open Graph. Я изначальнопонравилос моя страница, когда это была статья, которая вызвала у меня много проблем. Вы также можете проверить страницу на наличие ошибок Open Graph, используя Open Graph Debugger

Добавитьнравитс кнопку на странице вместе с SDK Facebook.

Шаг 3: Понравилась страница

Самая простая часть всего процесса. Посетите свою фиктивную страницу и нажмите клавишуПодобн кнопка.

Шаг 4: Отправить сообщение

Предполагая, что вы выполнили предыдущие шаги правильно, последний бит также должен быть простым. Я используюcurl в моем примере, но вы должны быть в состоянии получить его, используя любой запрос POST.

Получите токен доступа.

curl -F grant_type=client_credentials -F client_id=MY_APP_ID -F client_secret=MY_APP_SECRET -F redirect_uri=https://graph.facebook.com/oauth/access_token https://graph.facebook.com/oauth/access_token

Получите идентификатор страницы вашего продукта.

curl -g https://graph.facebook.com/\?id\=PAGE_URL

Отправьте сообщение всем, кому понравилась страница вашего продукта.

curl -F 'access_token=ACCESS_TOKEN' -F 'message=MESSAGE' -F 'id=ID_FROM_PREVIOUS_ACTION' https://graph.facebook.com/feed
Шаг 5: Успех!

На данный момент, надеюсь, все прошло хорошо. Как пользователь, которому понравилась страница, проверьте их новостную ленту. Вы должны увидеть сообщение с заголовком, изображением и описанием, которые были на вашей странице. Ура

... И вот как я это решил. Надеюсь, это будет ценно для других людей. Я был бы рад уточнить, если я пропустил какие-либо детали.

Так что, в основном, нам просто нужно опубликовать в ленте приложения. И приложение на самом деле есть канал. asdacap
Я так считаю. Похоже, эта информация будет неактуальной с 7 ноября 2012 года: Developers.facebook.com / документы / ссылки / плагины / как / миграция NT3RP

Похожие вопросы