Кол-во shares в Facebook

Тема в разделе "JavaScript", создана пользователем Jake Foley, 19 сен 2014.

Модераторы: ZiX
  1. Jake Foley

    Jake Foley

    Регистр.:
    14 дек 2006
    Сообщения:
    834
    Симпатии:
    365
    Приветствую,

    Можете помочь с такой задачей:

    Есть линк: http://graph.facebook.com/http://yandex.ru

    HTML:
    {
       "id": "http://yandex.ru",
       "shares": 19096,
       "comments": 7
    }
    Нужно через Javascript вывести только значение shares

    Знаю как сделать на PHP но нужно именно на JS.
     
  2. Jake Foley

    Jake Foley

    Регистр.:
    14 дек 2006
    Сообщения:
    834
    Симпатии:
    365
    Решено

    Нашел код и немного его подправил

    HTML:
    <html>
        <head>
            <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
            <script type="text/javascript">
                var f_page = "http://ya.ru"; // the page name for your fan page, e.g. the 'wvumountaineers' part of http://facebook.com/wvumountaineers
           
                function add_commas(number) {
                    if (number.length > 3) {
                        var mod = number.length % 3;
                        var output = (mod > 0 ? (number.substring(0,mod)) : '');
                        for (i=0 ; i < Math.floor(number.length / 3); i++) {
                            if ((mod == 0) && (i == 0)) {
                                output += number.substring(mod+ 3 * i, mod + 3 * i + 3);
                            } else {
                                output+= ',' + number.substring(mod + 3 * i, mod + 3 * i + 3);   
                            }
                        }
                        return (output);
                    } else {
                        return number;
                    }
                }
               
                // when document is ready load the counts
                $(document).ready(function(){
               
                    // grab from facebook
                    $.getJSON('https://graph.facebook.com/'+f_page+'?callback=?', function(data) {
                        var fb_count = data['shares'].toString();
                        fb_count = add_commas(fb_count);
                        $('#fb_count').html(fb_count);
                    });
               
                   
               
                });
            </script>
        </head>
        <body>
           
            Facebook fan count: <span id="fb_count"></span><br />
           
           
        </body>
    </html>
     
  3. Jake Foley

    Jake Foley

    Регистр.:
    14 дек 2006
    Сообщения:
    834
    Симпатии:
    365
    Вопрос теперь у меня в другом, как сделать так чтоб был яваскрипт и URL сайта был прописан не глобально

    var f_page = "http://ya.ru";

    Если у меня к примеру 3 url на одной странице которым нужно выдать кол-во shares

    site1.com - xxxxx
    site2.com - xxxxx
    site3.com - xxxxx

    как сделать чтоб по отдельности к каждому из них показать shares ?
     
    Последнее редактирование: 20 сен 2014
  4. ofolfa

    ofolfa Создатель

    Регистр.:
    15 авг 2008
    Сообщения:
    27
    Симпатии:
    7
    Нужно просто три раза продублировать код присоединение инфы с https://graph.facebook.com на кнопку, что-то в этом плане:
    HTML:
    
    ....
    // when document is ready load the counts
    $(document).ready(function(){
    f_page1 = 'http://yandex1.ru';
    
    // grab from facebook
    $.getJSON('https://graph.facebook.com/'+f_page1+'?callback=?', function(data) {
    var fb_count1 = data['shares'].toString();
    fb_count1 = add_commas(fb_count1);
    $('#fb_count1').html(fb_count1);
    });
    
    f_page2 = 'http://yandex1.ru';
    
    // grab from facebook
    $.getJSON('https://graph.facebook.com/'+f_page2+'?callback=?', function(data) {
    var fb_count2 = data['shares'].toString();
    fb_count2 = add_commas(fb_count2);
    $('#fb_count2').html(fb_count2);
    });
    
    f_page3 = 'http://yandex1.ru';
    
    // grab from facebook
    $.getJSON('https://graph.facebook.com/'+f_page3+'?callback=?', function(data) {
    var fb_count3 = data['shares'].toString();
    fb_count3 = add_commas(fb_count3);
    $('#fb_count3').html(fb_count3);
    });
    
    });
     
  5. Jake Foley

    Jake Foley

    Регистр.:
    14 дек 2006
    Сообщения:
    834
    Симпатии:
    365
    Все оказалось намного проще и без дублирований и можно делать неограниченное число URL:

    HTML:
    <html>
        <head>
            <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
            <script type="text/javascript">
                //var f_page = "http://ya.ru"; // the page name for your fan page, e.g. the 'wvumountaineers' part of http://facebook.com/wvumountaineers
          
                function add_commas(number) {
                    if (number.length > 3) {
                        var mod = number.length % 3;
                        var output = (mod > 0 ? (number.substring(0,mod)) : '');
                        for (i=0 ; i < Math.floor(number.length / 3); i++) {
                            if ((mod == 0) && (i == 0)) {
                                output += number.substring(mod+ 3 * i, mod + 3 * i + 3);
                            } else {
                                output+= ',' + number.substring(mod + 3 * i, mod + 3 * i + 3);  
                            }
                        }
                        return (output);
                    } else {
                        return number;
                    }
                }
              
                // when document is ready load the counts
                $(document).ready(function(){
                    $('.fb_count').each(function(x,v){
                        var $this = $(v);
                        var url = $this.attr('data-url');
                        $.getJSON('https://graph.facebook.com/'+url+'?callback=?', function(data) {
                            var fb_count = data['shares'].toString();
                            fb_count = add_commas(fb_count);
                            $this.html(fb_count);
                        });
                    })
                  
                  
          
                });
            </script>
        </head>
        <body>
          
            Facebook fan count ya.ru: <span class="fb_count" data-url="http://ya.ru"></span><br />
            Facebook fan count mail.ru: <span class="fb_count"  data-url="http://mail.ru"></span><br />
            Facebook fan count www.ru: <span class="fb_count"  data-url="http://www.ru"></span><br />
          
          
        </body>
    </html>