0

Facebook JavaScript SDK を使用して、カスタム HTML フォームからさまざまな Facebook のユーザー ページに投稿しています。

私のHTMLフォームには次のフィールドが含まれています

title=>textbox, 
Link url=>textbox, 
picture=>textbox, 
message=>textarea

しかし、私が直面している問題は、ユーザーがフィールド (空白) にリンク URL を入力せず、画像 URL フィールドボックスに画像 URL を入力した場合、空白またはリンク URL/画像 URL を表示しない代わりに壁に画像ホスト名を表示する facebook です。 ここに画像の説明を入力

ページに自分のステータスを投稿するために使用しているコード

FB.api('/' + d + '/feed', 'post', {
                                message: my_message,
                                link: url,
                                name: title,
                                picture: picUrl,
                                description: desc,
                                access_token: b.access_token
                            }, function (a) {
                                if (!a || a.error) {
                                    alert('Error occured')
                                } else {
                                    alert('Message Posted Successfully.')
                                }
                            })

リンク: url

写真: picURL

コメントの「リンク」パラメーターで送信しようとしましたが、Facebook の画像ホスト URL アドレスが壁に表示されます。

したがって、ユーザーがリンク URL を送信しなかった場合に、壁に画像ホスト URL アドレスを表示しないようにする方法を知る必要があります。

4

1 に答える 1

0

Facebook の投稿では、このリンクをキャプションとして参照できます。キャプション パラメータにスペースを確保する必要があります。string.empty を使用している場合は、IP アドレス/ドメイン名が出力されます。

ここで、そのサンプルコードを提供しています...

<div id="fb-root"></div>
<script>
    window.fbAsyncInit = function () {
        FB.init({
            //Get your Facebook API Key from Web.config
            appId: '<%=ConfigurationManager.AppSettings["FB_API_KEY"].ToString() %>',
            status: true, // check login status
            cookie: true, // enable cookies to allow the server to access the session
            xfbml: true  // parse XFBML
        });
    };

    (function () {
        var e = document.createElement('script');
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
    }());
</script>

スクリプトを追加するには、div を作成する必要があります。

今、私は ServerSide から postToFacebook() 関数を呼び出しています。必要に応じてそれを行うことができます。だから、これがその機能です。

function postToFacebook() {

    var POST_NAME = "Post Name";
    var POST_DESCRIPTION = "Post Description";
    var POST_MESSAGE = "";


    //Here I am Leaving some space in the Caption to avoid link name
    var POST_CAPTION = "  ";


    var body = 'Reading Connect JS documentation';
    FB.login(function (response) {
        if (response.authResponse) {
            FB.api('/me/feed', 'post', { body: body, message: POST_MESSAGE, caption: POST_CAPTION, name: POST_NAME, description: POST_DESCRIPTION, picture: document.getElementById('hfImageURL').value }, function (response) {
                if (!response || response.error) {
                    //alert(response.error);
                    alert('Image is not posted.');
                } else {
                    alert('Image is posted.');
                }
            });
        }
    }, { scope: 'offline_access,publish_stream' });
}

画像 URL を ID hfImageURL を持つ HiddenField に格納し、それを Post の画像プロパティに渡します。

それで、そのコードを確認できます...私にとってはうまくいきます...

ごきげんよう...

于 2014-01-28T06:05:45.870 に答える