web-dev-qa-db-de.com

facebook send API Error Code: 100 API Error Beschreibung: Ungültiger Parameter Fehlermeldung: 'link' ist ungültig

Ich verwende die Facebook-Post-GRAPH-Benutzeroberfläche, um eine private Nachricht mit einem Link zu meiner Anwendung in Facebook zu posten. Früher funktionierte es einwandfrei, aber ab den letzten zwei Tagen wurde ein Fehler mit dem folgenden Dialog angezeigt:

Ein Fehler ist aufgetreten. Bitte versuchen Sie es später erneut.

API-Fehlercode: 100
API-Fehlerbeschreibung: Ungültiger Parameter
Fehlermeldung: "Link" ist ungültig.

zum Senden der Nachricht verwende ich Code: 

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'
  });
}

Ich habe darüber gegoogelt und die einzig relevante Information ist, dass Facebook den Link zu seiner eigenen Domain blockiert, um Spam zu vermeiden. , Wenn ich den Link zu einer anderen Live-Site ändere.

Ich muss einen Link an meine Anwendung senden, da ich solche Funktionen bereitstellen muss.

10
Priyank Gupta

Eine Lösung gefunden:

Facebook Send Dialog Error Code: 100 API Error Beschreibung: Ungültiger Parameter Fehlermeldung: "Link" ist ungültig.


Problem Ursache:

Facebook erlaubt es nicht, einen eigenen Link zu verwenden, um Spam zu stoppen.

Problemlösung:

Es gibt keine Lösung, wie sie von Facebook API angeboten wird.

Anderes Training:

URL verkürzen, aber es funktioniert nicht, da Facebook die angegebene URL überprüft. URL wie oben. Umleiten. In meinem Fall habe ich eine zusätzliche HTML-Seite bereitgestellt, die nur zur Weiterleitung an Facebook verwendet wird App-Link. Denken Sie daran, dass Sie für einige Sekunden einen Timer haben sollten, da Facebook die bereitgestellte URL durchsucht, sodass Sie nicht feststellen können, dass die Seite auf denselben Application Link umleitet. , Den ich habe habe folgenden Code für meine HTML-Datei verwendet:

<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>
3
Ishank Gupta

Ich hatte ähnliche Probleme und dachte, ich würde die Ergebnisse meiner Untersuchung hier teilen.

Die einzigen Informationen in der Facebook-Dokumentation, die den Parameter link beschreiben, sind nicht besonders hilfreich:

link - Die in der Nachricht gesendete URL.

Es gibt ein paar andere StackOverflow-Fragen, die diesem ähnlich sind:

Facebook-API-Fehler 100 - ungültiger Link

dieses Problem wurde zu einem fehlerhaften picture-Parameter

Der Facebook-FB.ui-Sendedialog gibt ab und zu einen ungültigen Link-Fehler zurück -

"Das Problem drehte sich darum, dass unsere URL dynamisch ist und jedes Mal zwangsweise zwischengespeichert werden muss. Ich rufe jetzt einen Ajax-Aufruf an" https://developers.facebook.com/tools/debug/og/object ", um es zu aktualisieren und Starten Sie dann den Sendedialog. "

Ich weiß noch nicht genau was einen gültigen link-Parameter ausmacht, aber ...

Einige Schlussfolgerungen aus den oben genannten Fragen und Antworten sowie einige Tests meinerseits, gültige link-Parameter:

  • Muss "voll qualifiziert" sein. I.E. mit http:// oder https://
  • Muss nicht facebook.com-Links sein
  • Mag nicht wie Weiterleitungen (oder Sie müssen mit ihnen hinterlistig sein)
  • Do Support-URLs, die nicht in der Liste "App Domains" enthalten sind
  • Do unterstützt Abfragezeichenfolgen
  • Kann in Bezug auf dynamisch generierte Seiten wählerisch sein (wie in diese Frage )

Anscheinend hat Facebook eine Art Link-Crawling-Mechanismus, der unbekannte Tests eines link-Parameters durchführt, um seine Gültigkeit zu ermitteln. Ich wünschte nur, sie würden es für uns dokumentieren.

6
Zach Lysobey

Ich hatte genau das gleiche Problem, nur dass mein Link auf meine Website verweist.

Falls sich jemand in einem ähnlichen Szenario befindet, überprüfen Sie bitte - diese Lösung . Hoffe das hilft einigen Leuten.

0
glautrou