Facebook Open Graph Action ошибка кодирования - PullRequest
4 голосов
/ 29 января 2012

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


обновлено: 30 января 2012

ошибка говорит: ОшибкаПроизошел [объект объекта] [объект объекта]

Ответы [ 2 ]

1 голос
/ 09 октября 2012

Возможно, вы уже нашли решение, но, надеюсь, это поможет кому-то еще.

Проблема в том, что вы не знаете имен дочерних узлов в объекте ответа.Если вы не можете назвать конкретный узел, то вы будете постоянно получать это сообщение об ошибке: «Произошла ошибка [объект объекта] сообщение»

У меня есть простой обходной путь, который позволит вам увидеть сообщение об ошибкене зная имен дочерних узлов объекта ответа.JSON.stringify просто преобразует весь объект в строку, позволяя вам просматривать его содержимое.Это не будет красиво, но вы определенно сможете увидеть там сообщение об ошибке.

Попробуйте это:

<script type="text/javascript">
function postCook()
{
    $pageURL = window.location;
    FB.api('/me/bgfapp:watch?movie=' + $pageURL,'post', function(response) {
        if (!response || response.error) {
          alert(JSON.stringify(response));
        } 
        else {
          alert('Post was successful! Action ID: ' + response.id);
        }
    });
}

Альтернативное решение будетчтобы вывести содержимое объекта ответа на консоль, а не выполнять предупреждение, просто замените строку 7 в моем примере кода следующим образом:

console.log(response);

Здесь вы можете открыть консоль разработки своего веб-браузераи пройти содержимое объекта ответа.Поскольку консоль не всегда доступна (например, приложения PhoneGap), первое решение иногда более подходит.

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

Судя по вашему новому сообщению об ошибке, вам нужно увидеть, что говорит response.error.Ваша логика говорит, что либо вы вообще не получили ответа, либо получили response.error.Сначала вы должны выяснить, в каком случае вы находитесь, и действовать соответственно.

response.responseText и response.error.responseText не определены, поскольку они вам не возвращаются.попробуйте просто и продолжайте свой путь.Отладка всех переменных, которые вы проверяете.Если вы не получили ответ, возможно, ваш вызов конечной точки API не существует.Если вы получаете ошибку, значит, ваш звонок неверный или, возможно, не аутентифицирован.

...