web-dev-qa-db-ja.com

facebook send APIエラーコード:100 APIエラーの説明:無効なパラメータエラーメッセージ:「リンク」が無効です

Facebookのアプリケーションへのリンクを含むプライベートメッセージを投稿するために、Facebookの投稿GRAPHUIを使用しています。以前は正常に機能していましたが、過去2日間から、ダイアログは次のようにエラーをスローし始めました。

エラーが発生しました。後でもう一度やり直してください。

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

私はこれについてグーグルで検索しました、そして私が得る唯一の関連情報は、フェイスブックがスパムを避けるためにそれ自身のドメインへのリンクをブロックしているということです。他のライブサイトへのリンクを変更すると、機能します。

このような機能を提供する必要があるため、アプリケーションへのリンクを送信する必要があります。

10
Priyank Gupta

解決策を見つけました:

Facebook送信ダイアログエラーコード:100 APIエラーの説明:無効なパラメータエラーメッセージ:「リンク」が無効です。


問題の原因:

Facebookは、スパムを阻止するために独自のリンクを使用することを許可していません。

問題解決:

FacebookAPIによってむき出しになったような解決策はありません。

その他のトレーニング:

URLを短縮しますが、Facebookが提供されたURLを確認するため機能しませんでした。上記と同じように、URLをリダイレクトします。私の場合、Facebookアプリのリンクにリダイレクトするために使用する追加のHTMLページを展開しました。 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>
3
Ishank Gupta

私も同様の問題を抱えており、調査の結果をここで共有すると考えました。

linkパラメータを説明しているFacebookドキュメントの唯一の情報は、ひどく役に立ちません。

link-メッセージで送信されているURL。

これに類似した/関連するStackOverflowの質問が他にもいくつかあります。

Facebook APIエラー100-無効なリンク

この問題は、不正な形式のpictureパラメーターになってしまいました

Facebook FB.ui送信ダイアログが断続的に無効なリンクエラーを返します -

「この問題は、URLが動的であり、毎回強制キャッシュが必要になることを中心に展開しました。今度は、「 https://developers.facebook.com/tools/debug/og/object "」にajax呼び出しを行います。更新してから、送信ダイアログを起動してください。」

有効なlinkパラメータを構成するものが正確にわかりませんが...

上記の質問と回答からいくつかの推論を行い、私の側でいくつかのテストを行い、有効なlinkパラメータ:

  • 「完全に資格がある」必要があります。 I.E. http://またはhttps://を含む
  • notfacebook.comリンクである必要があります
  • リダイレクトが好きではないかもしれません(またはリダイレクトにこっそりする必要があります)
  • 「アプリドメイン」リストにないURLをサポートする
  • Doはクエリ文字列をサポートします
  • 動的に生成されたページに関しては気難しいかもしれません( この質問 のように)

どうやらFacebookには、その有効性を判断するためにlinkパラメータに対していくつかの未知のテストを実行するある種のリンククロールメカニズムがあります。彼らが私たちのためにそれを文書化することを選択してくれることを願っています。

6
Zach Lysobey

リンクが自分のWebサイトを指していることを除いて、まったく同じ問題が発生しました。

誰かが同様のシナリオにある場合は、 この解決策 で確認してください。それが何人かの人々を助けることを願っています。

0
glautrou