【问题标题】:Widget for getting facebook group's timeline / posts用于获取 facebook 群组的时间线/帖子的小部件
【发布时间】:2017-02-05 02:00:31
【问题描述】:

我想整合 facebook Widget 以获取 facebook 群组的时间线/帖子。我已经搜索并得到了这个https://developers.facebook.com/docs/plugins/page-plugin,但这给出了用户和页面的时间线。我想要集团的时间表。我在 Fb Developer 门户上没有找到完美的答案,也没有在网络上得到任何东西。

对此的任何帮助表示赞赏。 提前致谢。

【问题讨论】:

    标签: facebook-widgets


    【解决方案1】:

    经过大量搜索,我没有为此找到任何插件。但是是的,有一个 php 博客,开发人员手动制作了自定义小部件,我用 JavaScript 和 jQuery 对其进行了修改。

    <div style="height: 375px; background: #f6f7f9;">
         <div id="fb-root"></div>
              <p class="text-center media-body social-link" style="background: white">
               <img src="~/Content/Images/Link-Red.png" />
               <a href="<!--Widget.Link-->">Facebook Group</a>
               </p>
               <div id="fix-div"></div>
               <div id="facebook-group" style="overflow-y: scroll; height: 375px; margin-top: 55px;"></div>
    </div>
    

    Facebook JavaScript API 如下-

    <script>
      var access_token = '<!-- Valid fb access token -->';
      var groupId = 'valid facebook group id';
      window.fbAsyncInit = function () {
          FB.init({
              appId: 'valid facebook app id',
              cookie: true,
              xfbml: true,
              version: 'v2.8'
          });
          FB.api("" + groupId + "?fields=cover,icon,name,privacy",
              'get',
              { access_token: access_token },
              function (groupResponse) {
                  if (groupResponse && !groupResponse.error) {
                      $("#fix-div").html('');
                      $("#facebook-group").html('');
                      var fixDivHtml =
                          "<div style='z-index: 10;position: absolute;border: 1px solid #e9ebee;max-width: 470px;background: white;min-height: 50px;'><div class='media' style='border: 0'><div class='media-left media-middle' style='vertical-align: bottom'><a href='https://www.facebook.com/groups/" + groupResponse.id + "' target='_blank'><img class='media-object' src='/Content/Images/Facebook-group.png' style='min-height: 50px;padding: 5px 10px;width: 64px;'></a></div><div class='media-body media-middle'><a href='https://www.facebook.com/groups/" + groupResponse.id + "' target='_blank'><h4 class='media-heading' style='font-size: 14px;font-weight: bold;'>" + groupResponse.name + "</h4></a></div></div></div>";
                      $("#fix-div").append(fixDivHtml);
                      FB.api("/" +
                          groupId +
                          "/feed?fields=id,message,link,attachments{media,description},created_time,from,object_id,parent_id&limit=1000",
                          'get',
                          { access_token: access_token },
                          function (response) {
                              if (response && !response.error) {
                                  for (var i = 0; i < response.data.length; i++) {
                                      var picture = undefined;
                                      var description = undefined;
                                      var date = formatDate(response.data[i].created_time);
                                      if (response.data[i].attachments !== undefined) {
                                          if (response.data[i].attachments.data.length > 0) {
                                              if (
                                                  response.data[i].attachments.data[0].media !==
                                                      undefined) {
                                                  if (
                                                      response.data[i].attachments.data[0].media
                                                          .image !==
                                                          undefined)
                                                      picture = response.data[i].attachments
                                                          .data[0].media.image.src;
                                                  if (
                                                      response.data[i].attachments.data[0].media
                                                          .image.description !==
                                                          undefined)
                                                      description = response.data[i].attachments
                                                          .data[0].media.image.description;
                                              } else {
                                                  if (
                                                      response.data[i].attachments.data[0]
                                                          .description !==
                                                          undefined)
                                                      description = response.data[i].attachments
                                                          .data[0].description;
                                              }
    
                                          }
                                      }
                                      var message = response.data[i].message;
                                      var
                                          append =
                                              "<div class='border'><div class='media'><div class='media-left media-middle'><a href='https://www.facebook.com/" + response.data[i].from.id + "' target='_blank'><img class='media-object' src='http://graph.facebook.com/" + response.data[i].from.id + "/picture?type=square'></a></div><div class='media-body' style='vertical-align: bottom'><a href='https://www.facebook.com/" + response.data[i].from.id + "' target='_blank'><h4 class='media-heading'>" + response.data[i].from.name + ".<br /><small>" + date + "</small></h4></a></div>";
                                      if (message !== undefined) {
                                          if (ValidURL(message) === 1) {
                                              append +=
                                                  "<a class='ellipsis' href='" +
                                                  message +
                                                  "' target='_blank'>" +
                                                  message +
                                                  "</a>";
                                          } else {
                                              append += "<a class='ellipsis'>" + message + "</a>";
                                          }
                                      }
                                      if (picture !== undefined)
                                          append +=
                                              "<a href='" +
                                              response.data[i].link +
                                              "' target='_blank'><img class='img-responsive' src='" +
                                              picture +
                                              "'/></a>";
                                      if (description !== undefined)
                                          append += "<p>" + description + "</p>";
                                      append += '<hr///>' +
                                          "<div class='btn-group btn-group-justified' role='group' aria-label='Justified button group'>" +
                                          "<a href=" +
                                          response.data[i].link +
                                          " class='btn btn-default' role='button' target='_blank'><i class='fa fa-thumbs-up' aria-hidden='true'></i>&nbsp;&nbsp;&nbsp;Like</a>" +
                                          "<a href=" +
                                          response.data[i].link +
                                          " class='btn btn-default' role='button' target='_blank'><i class='fa fa-comment' aria-hidden='true'></i>&nbsp;&nbsp;&nbsp;Comment</a></div></div></div>";
                                      $("#facebook-group").append(append);
                                  }
                              }
                          });
                  }
              });
      };
    
      (function () {
          var e = document.createElement('script');
          e.async = true;
          e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
          document.getElementById('fb-root').appendChild(e);
      }());
    
      var formatDate = function (input) {
          var d = new Date(Date.parse(input));
          input = d.toString();
          d = new Date(Date.parse(input.replace(/-/g, "/")));
          var month = [
              'january', 'February', 'March', 'April', 'May', 'June', 'July', 'August',
              'September', 'October', 'November', 'December'
          ];
          var date = d.getDay().toString() +
              " " +
              month[d.getMonth().toString()] +
              ", " +
              d.getFullYear().toString();
          return (date);
      };
    
      function ValidURL(str) {
          if (
              /^(http|https|ftp):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/i.test(str))
              return 1;
          else
              return -1;
      }
    </script>
    

    这里的formatDate 和ValidURL 是用于一些美容操作的辅助函数。

    【讨论】:

      猜你喜欢
      • 2018-12-19
      • 2019-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多