【问题标题】:I want to fetch & show only a text status update, how could I specify this in my script?我只想获取并显示文本状态更新,如何在我的脚本中指定它?
【发布时间】:2012-01-24 21:57:48
【问题描述】:

亲爱的程序员们,

我正在开发我的 B&B 网站 www.bordemundo.com,并希望在我的网站标题中包含我最新的 Facebook 页面状态更新。

由于我对 JQuery 不是很擅长,所以我运行了 Google 并编辑了一个运行良好的脚本。我设法摆脱了我实际上不需要的日期戳,因为状态每天会更改一次。现在我注意到,当我分享另一个页面的朋友的相册或任何链接或数字信息时,它也会更新。

我宁愿只获取我自己输入的状态更新。你们中有人知道如何使用我编辑的脚本轻松管理这个吗?我附上了下面的代码。

感谢您的考虑,非常感谢您的帮助!

(function($) {
$.fn.faceFeed = function(options) {
    /**
     * Configuration
     *
     * `pageName:` The name of your Facebook page. Required.
     * `tokenGenerator:` Path to a file that will return a JSON access_token. If defined, this will take
     *                   priority over `accessToken`.
     * `accessToken:` A token you generate at <https://developers.facebook.com/tools/explorer>.
     * `dateClass:` The class of the `<span>` that contains your date "ago in words". Default: `post-date`
     */
    var config = {
        pageName:    '',
        tokenGenerator: '', // default: token.php
        accessToken: '',
        postsToFetch: 1
    };
    $.fn.extend(config, options);

    /**
     * Converts "http://" links into <a> tags.
     *
     * @param {String} a block of text for which all "http://" links need conversion
     * @return {String} the same block of text with URLs re-formatted.
     */
    function linkify(text){
        if (text) {
            text = text.replace(
                /((https?\:\/\/)|(www\.))(\S+)(\w{2,4})(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/gi,
                function(url){
                    var full_url = url;
                    if (!full_url.match('^https?:\/\/')) {
                        full_url = 'http://' + full_url;
                    }
                    return '<a href="' + full_url + '">' + url + '</a>';
                }
            );
        }
        return text;
    }

    /**
     * Requests your page's status feed from the Open Graph and injects it as HTML into the
     * element.
     *
     * @param {String} accessToken - A generated or provided access token for authorizing
     *                               with the API.
     */
    function getPosts(accessToken, self) {
        $.ajax({
            url: 'https://graph.facebook.com/'+config.pageName+'/feed',
            type: 'GET',
            data: {
                access_token: accessToken,
                limit: config.postsToFetch
            },
            dataType: 'json',
            success: function(response) {
                self.html('');
                for (var c=0; c < response.data.length; c++) {
                    var status = response.data[c];
                    var statusMessage = (status.message) ? status.message : status.story;

                    var txt = linkify(statusMessage);

                    var row = $('<span class="status"></span>').html(txt);
                    self.append(row);
                }
            }
        });
    }


    /*
     * Runtime.
     */
    return this.each(function() {
        var self = $(this);
        self.html('<p>Lade Neuigkeiten...</p>');

        if (config.tokenGenerator) {
            $.ajax({
                url: config.tokenGenerator,
                type: 'GET',
                dataType: 'json',
                success: function(generator) {
                    getPosts(generator.access_token, self);
                }
            })
        } else {
            getPosts(config.accessToken, self);
        }
    });
};

})(jQuery)

【问题讨论】:

    标签: jquery post fetch facebook-page


    【解决方案1】:

    是的,从阅读页面提要更改为阅读页面状态。见:http://developers.facebook.com/docs/reference/api/page/

    您还可以通过检查每个项目的 post.from.id 并确保 ID 是您要显示的发布者的 ID 来确定该项目的发布者是您想要的人

    【讨论】:

    • 老兄,非常感谢。我至少在逻辑上理解这两个选项。无。我不是那种程序员,但无论如何,我会阅读提供的链接,也许会有一个想法!谢谢!
    • 老兄,我欠你太多了。通过简单地将这一行“url:'graph.facebook.com/'+config.pageName+'/feed'”更改为“url:'graph.facebook.com/'+config.pageName+'/statuses'”,它就像一个魅力。实际上,唯一被拉出的东西似乎是我在框中输入的东西。你真的让我很开心。我不能把你赚到的分数推给你。一直告诉我我还需要论坛中的其他 15 点。我不时在这里提出问题,我会尽快给你奖励! Saludos desde Puerto Varas,同志!
    • 是的,你真的是。我非常喜欢我的 b&b 网站的这个功能。我不喜欢这些天气插件,因为它们都很糟糕、缓慢和丑陋。所以我心想:如果不是我,谁是最好的天气青蛙,反正我就坐在兰基休湖的海岸线上。所以我告诉外面的人我们现在的天气如何。
    • 所以我想依赖哪个来源。好吧,事实上,我几乎在 Facebook 群组上为 Bordemundo 做所有事情。因此,既然我在提要操作和状态帖子之间有所不同,我可以简单地每天早上更新一次天气,人们可以从 bordemundo.com 上的新闻中新鲜阅读。太棒了,没有你就不会到达那里,我读了很多书,但只是忽略了这一点。
    • 那么,我们开始吧。这就是例子。该脚本仅在顶部中间显示最后的状态更新! bordemundo.com/index.html
    猜你喜欢
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多