Ошибка при использовании действия "Открыть график" для news.reads
Я испытываю новые действия Open Graph для создания таких функций, как Washington Post Social Reader. Я создал страницы OG типа "article" и опубликовал для них действие "news.reads". Я проверил, что страницы являются действительными объектами OG, используя отладчик OG. И пользователь предоставил разрешения publish_actions.
Я публикую действие с HTTP POST для:
https://graph.facebook.com/me/news.reads?article=((article link))&access_token=...
Я получаю эту ошибку от Facebook:
type = u'OAuthException', message = u'An unknown error has occurred.'
Поэтому я снова пытаюсь выполнить то же действие, и на этот раз я получаю следующую ошибку:
type = 'OAuthException'
message = '(#3501) User is already associated to a article object on a unique
action type Read. Original Action ID: ((action id))'
Где ((идентификатор действия)) является действительным идентификатором действия, который я могу проверить, просмотрев:
http://graph.facebook.com/((action id))
Что дает мне подробности о действии. Я пробовал вышеописанное несколько раз с разными страницами и разными пользователями, и это один и тот же поток: неизвестная ошибка, ошибка повторяющегося действия. Похоже, что действие создается, однако:
- Я не вижу его на временной шкале пользователя.
- И я не вижу его в журнале активности.
Что мне не хватает?
Примечание. Если я сделаю вышеизложенное, используя собственные существительные и глаголы, относящиеся к приложению, все будет работать так, как ожидается. Но я заинтересован в использовании встроенных существительных и глаголов для лучшей агрегации на временных шкалах пользователей.
3 ответа
Если ваше действие не было одобрено Facebook, оно не будет показано конечным пользователям. Только те, которые перечислены в разделе "Роли" в настройках приложения, смогут публиковать и просматривать действия в журнале активности (например, администраторы, разработчики и тестеры).
Попробуйте протестировать действие с тестовым пользователем. Создайте нового тестового пользователя на странице "Роли" и войдите с ним. Посмотрите, опубликовано ли действие и правильно ли оно отображается в журнале активности.
Вот что я использую для публикации видео-часов, вы можете попробовать сделать то же самое:
function postWatch()
{
FB.api('/me/video.watches' +
'?video=<?php echo $url; ?>','post',
function(response) {
if (!response || response.error) {
alert(response.error);
} else {
//alert('Post was successful! Action ID: ' + response.id);
}
});
}
Встроенное действие "Чтение" определяется как "уникальное", а тип вашего действия - нет (см. Раздел "Дополнительно" на экране редактирования действия). Вы не можете отправить Read с одним и тем же URL объекта дважды.