API facebook send API Код ошибки: 100 API Ошибка Описание: Неверный параметр Сообщение об ошибке: "ссылка" недействительна

Я использую facebook post GRAPH UI для публикации личного сообщения со ссылкой на мое приложение в facebook. Раньше он работал нормально, но за последние два дня диалог начал выдавать ошибку:

Произошла ошибка. Повторите попытку позже.

Код ошибки API: 100
API Ошибка Описание: Неверный параметр
Сообщение об ошибке: "ссылка" недействительна.

для отправки сообщения Я использую код:

function sendMessage(id) {
  FB.ui({
    method : 'send',
    name : 'My APP',
    link : 'https://apps.facebook.com/MY_APP/',
    to : id,
    show_error : 'true',
    description : 'my description'
  });
}

У меня есть Googled об этом, и только релевантная информация, которую я получаю, заключается в том, что facebook блокирует ссылку на свой собственный домен, чтобы избежать спама.  так как я меняю ссылку на другой сайт, на котором он работает.

Мне нужно отправить ссылку на мое приложение, поскольку я должен предоставить такую ​​функциональность.

Ответ 1

Найдено решение:

Диалог отправки Facebook Код ошибки: 100 API Ошибка Описание: Неверный параметр Сообщение об ошибке: 'ссылка недействительна.


Проблема Причина:

Facebook не позволяет использовать свою собственную ссылку, чтобы остановить спам.

Решение проблемы:

Нет такого решения, как его обнародование Facebook API.

Другая тренировка:

Сократить URL-адрес, но его действие не работает, так как Facebook проверяет предоставленный URL-адрес. URL-адрес перенаправления, как указано выше. В моем случае я развернул дополнительную HTML-страницу, которая просто используется для перенаправления ссылки на Facebook. Просто помните, что у вас должен быть таймер на несколько секунд, когда Facebook сканирует предоставленный URL-адрес, поэтому он не сможет обнаружить, что страница перенаправляется на ту же ссылку приложения. Я использовал следующий код для моего файла HTML:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>My Application</title>
</head>
<body>
    <p id="demo"></p>
</body>
<script type="text/javascript">
    var url = "https://apps.facebook.com/MY_APPLICATION_ID";
    var myVar = setInterval(function() {
        myTimer()
    }, 1000);
    var counter = 3;
    function myTimer() {
        if (counter == 0) {
            window.location.replace(url);
            window.clearInterval(myVar);
        }
        document.getElementById("demo").innerHTML = "you will be redirected in "
                + counter + " seconds...";
        counter = counter - 1;
    }
</script>
</html>

Ответ 2

У меня были похожие проблемы, и я решил поделиться результатами моего расследования здесь.

Единственная информация в документации на Facebook, описывающая параметр link, не очень помогает:

ссылка. URL, который отправляется в сообщении.

Есть несколько других вопросов StackOverflow, похожих/связанных с этим:

Ошибка API Facebook 100 - неверная ссылка

эта проблема оказалась неправильным параметром picture

Facebook FB.ui send dialog периодически возвращает неверную ошибку ссылки -

"Вопрос вращался вокруг нашего URL-адреса, который был динамичным и нуждался в силовом кэшировании каждый раз. Теперь я делаю ajax-вызов" https://developers.facebook.com/tools/debug/og/object "обновить его, а затем запустить диалог отправки".

Я до сих пор не знаю точно, что представляет собой действительный параметр link, но...

Сделав некоторые выводы из вышеуказанных вопросов и ответов, а также некоторые проверки с моей стороны, допустимые параметры link:

  • Должен быть "полностью квалифицированным". И.Е. содержащий http:// или https://
  • Должно не быть facebook.com ссылки
  • Возможно, вам не нравятся перенаправления (или вы должны быть скрыты с ними)
  • Поддерживайте URL-адреса не в списке "Домены приложений"
  • Поддерживать строки запроса
  • Может быть, можно свести счеты к динамически сгенерированным страницам (как в этот вопрос)

По-видимому, у Facebook есть своего рода механизм обхода ссылок, который выполняет некоторые неизвестные тесты в параметре link для определения его действительности. Мне жаль, что они не захотят документировать это для нас.

Ответ 3

У меня была одна и та же проблема, за исключением того, что моя ссылка указывала на мой сайт.

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

Ответ 4

Если возникает плохой параметр, и сообщение читает "Код ошибки API: 100" - убедитесь, что поле рядом с "Поделиться с плейлистом, начинающимся с" не отмечено в YouTube, и эта ошибка не будет отображаться.