سؤال

لدي العديد من Facebook مثل الأزرار على نفسي التي يتم تقديمها عبر XFBML. بعد النقر عليها ، يبدو أنها تعمل من حيث أنها تتغير من الزر مثل المعيار إلى أيقونة "الإبهام لأعلى" تقول "أنت مثل هذا". ومع ذلك ، بعد ثانية أو ثانيتين (أفترض أن الوقت يستغرق ضرب خوادم FB والعودة) ، فإنه يحتمل تلقائيًا ، ويعود إلى الزر الأصلي مثل.

شاهد مقطع فيديو لما أعنيه هنا.

الكود الخاص بي قياسي جدا:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" lang="en">

...

<fb:like href="http://www.example.com/valid/path" layout="button_count" ref="recipe_preview" />

...

<script type="text/javascript">
    window.fbAsyncInitExt = function() {
        FB.Event.subscribe('edge.create', function(response) {
            alert('Facebook Like Button: ' + response);
        });
    };
</script>

...

<div id="fb-root"></div>
<script type="text/javascript"> 
    window.fbAsyncInit = function() {
        FB.init({
            appId:  'XXXXXXXXXX',  // my app ID is here
            status: true,
            cookie: true,
            xfbml:  true
        });
        if (typeof(fbAsyncInitExt) == 'function') {
            fbAsyncInitExt();
        }
    };
    (function() {
        var e = document.createElement('script');
        e.type = 'text/javascript';
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
    })();
</script> 

يحرر: لما يستحق الأمر ، حاولت أيضًا معرفة ما إذا كان Facebook يرسل أي معلومات سجل ، لكن لا يبدو أنه:

<script type="text/javascript">
    window.fbAsyncInitExt = function() {
        FB.Event.subscribe('edge.create', function(response) {
            alert('Facebook Like Button: ' + response);
            console.debug(response);
        });
        FB.Event.subscribe('fb.log', function(response) {
            alert('LOG: ' + response);
            console.debug(response);
        });
    };
</script>
هل كانت مفيدة؟

المحلول

بعد الكثير من الحفر ، اكتشفت أخيرًا مصدر الخطأ. اتضح أن الصفحة المشار إليها من قبل href القيمة في بلدي fb:like العلامة المطلوبة على الأقل واحد من fb:app_id أو fb:admins علامات التعريف في الرأس. كمرجع: http://developers.facebook.com/docs/opengraph

نصائح أخرى

بعد تجربة جميع الحلول التي يمكنني العثور عليها ، لا شيء يعمل ، لكنني حاولت استخدام معرف تطبيق "Live Feed" بدلاً من "البث المباشر" الافتراضي عندما تحصل على الكود الخاص بك من صفحة مطوري Facebook ، والتي عملت بالنسبة لي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top