2012-04-18 44 views
23

Tôi có một khách hàng muốn nguồn cấp tin tức/thời gian trên Facebook của công ty được hiển thị trên trang web của họ. Nó không phải là một dòng thời gian/newsfeed cá nhân, mà là một tổ chức.Hiển thị nguồn cấp dữ liệu/dòng thời gian trên Facebook trên trang web

Mọi thứ tôi đã đọc có vẻ như đã vài tuổi nhưng Facebook lại muốn giữ tất cả dữ liệu trên máy chủ của riêng mình - họ không muốn mọi người xuất và mọi người đã bị cấm cố gắng. (Như tôi đã nói, thông tin này đã được vài năm tuổi.)

Điều gần nhất hiện tại tôi tìm thấy là Activity Feed Plugin, nhưng chỉ đăng ký tương tác của người dùng khác với trang web hoặc ứng dụng FB.

Có ai có bất kỳ thành công nào trong việc xuất bản cập nhật công khai của họ lên trang web bên ngoài hay tôi phải thông báo cho khách hàng rằng không thể thực hiện được?

Cảm ơn bạn đã trợ giúp!

+0

Chỉ trong trường hợp các bạn muốn hiển thị nguồn cấp dữ liệu dòng thời gian của trang Facebook, tôi đã tìm thấy hướng dẫn giải thích cách thực hiện, từng bước https://www.codeofaninja.com/2014/10/display-facebook-page -feed-on-wordpress-or-website.html – Emkey

Trả lời

31

AFAIK, có thể, theo cách nào đó. Giải pháp đơn giản nhất, nhưng không phải là tốt nhất cho tình hình của bạn có thể là Like Box plugin:

Các Giống như Box cho phép người dùng:

Xem có bao nhiêu người dùng đã thích trang này, và những người bạn của họ như nó quá
đọc bài viết gần đây từ trang
Giống như trang với một cú nhấp chuột, mà không cần phải truy cập vào trang giải pháp

tốt hơn: sử dụngcủa họ, tuy nhiên bạn chỉ có thể đọc dữ liệu (dưới dạng JSON), không có luồng được sao chép chính xác trên trang web của khách hàng, bạn không thể áp dụng kiểu mà facebook sử dụng (nghĩa là bạn sẽ không thể xóa nó), bạn sẽ phải sao chép nó hoặc tạo kiểu của riêng bạn.

Bây giờ nếu trang là công khai và có thể được đọc bởi tất cả, như trong không có quy định riêng tư, sau đó bạn chỉ có thể gọi url với bất kỳ access_token hợp lệ (có thể access_token ứng dụng cũng):

https://graph.facebook.com/<clientpagename_OR_id>/feed 

hoặc

https://graph.facebook.com/<clientpagename_OR_id>/posts 

tùy thuộc vào chính xác những gì bạn cần, hãy thử các graph api explorer để kiểm tra xem (và cũng có thể thấy các loại dữ liệu được trả lại). Khi có nhiều bài đăng, sẽ có các url phân trang, bạn sẽ có thể nhận thấy trong trình khám phá.

Khi trang không công khai, bạn sẽ cần access_token với quyền read_stream, do đó bạn sẽ cần phải tạo một facebook app, của trang web loại. Sau đó, hãy yêu cầu quản trị viên trang của khách hàng của bạn cấp quyền cho ứng dụng, với read_streampermission. Sau đó, bạn có thể gọi các url bằng access_token mà bạn nhận được sau khi xác thực và có thể tiếp tục đọc luồng.

https://graph.facebook.com/<clientpagename_OR_id>/posts?access_token=thetoken 

Trong trường hợp này sử dụng PHP SDK, để đơn giản hóa xác thực và gọi biểu đồ api.

Liên kết quan trọng: Authentication Guide, Real-time-updates.

Chúc may mắn.

Chỉnh sửa: bạn cần mã thông báo truy cập để truy cập nguồn cấp dữ liệu hoặc bài đăng kết nối, nhưng bạn donot nhất thiết cần mã thông báo truy cập để đọc chính đối tượng trang như được nêu trong this documentation.
Công hàm do doc:

Đối với các kết nối đòi hỏi một thẻ truy cập, bạn có thể sử dụng bất kỳ thẻ truy cập hợp lệ nếu trang là công khai và không bị giới hạn. Các kết nối trên các trang bị hạn chế yêu cầu mã thông báo truy cập của người dùng và chỉ hiển thị cho người dùng đáp ứng các tiêu chí hạn chế (ví dụ: tuổi) được đặt trên trang.

+0

Cập nhật theo thời gian thực sẽ không hữu ích vào lúc này, vì chưa có kết nối cho bài đăng, tuy nhiên tôi đã cung cấp cho bạn liên kết để tham khảo trong tương lai –

+0

Tôi đã truy lùng aroun d và tôi không thể tìm thấy một trang "công khai" duy nhất không yêu cầu mã thông báo truy cập. Tôi đoán bạn cần một, không có vấn đề gì. –

+0

có một trang mà tôi biết, gần đây đã được đề cập trong một câu hỏi ở đây. thử url này trong [explorer graph graph] (https://developers.facebook.com/tools/explorer/?method=GET&path=dominos%2Fposts): 'https: // graph.facebook.com/dominos/posts' hoặc chỉ trong thanh địa chỉ trình duyệt. Ngoài ra nếu bạn nghĩ rằng bạn muốn trao cho tôi tiền thưởng thì bạn sẽ phải làm điều đó [thủ công] (http://stackoverflow.com/faq#bounty), trong khoảng thời gian 24 giờ kết thúc. –

1

Có, nó có thể được thực hiện. Đầu tiên đăng ký trang web tại trang nhà phát triển của facebook. Hơn bạn có thể sử dụng bất kỳ API phù hợp để tương tác với FB. Đôi khi trước đây tôi đã sử dụng SpringSocial (vì tôi đã làm việc chặt chẽ với Spring) ... Bạn có thể sử dụng api của FB cũng rất hữu ích mà bạn có thể đọc hướng dẫn here

+0

Tôi đã xem qua tài liệu API và tôi không thể thấy bất kỳ thứ gì cho phép tôi làm những gì tôi cần: ( –

+2

Tôi nghĩ @ bool.dev đã trả lời câu hỏi của bạn. ... – aProgrammer

+0

Có một vài plugin wordpress nơi bạn chỉ có thể hiển thị trang facebook của mình ngay sau khi bạn thêm mã thông báo truy cập. Tôi đã giúp phát triển mã này. Http://www.slickremix.com/downloads/feed-them-social- premium-extension/ – SlickRemix

7

Bạn có thể truy xuất nguồn cấp tin tức của tổ chức bằng cách sử dụng API đồ thị của Facebook. Không thể truy xuất tiến trình thời gian qua API công khai.

Không có plugin nào để thực hiện việc này. Bạn cần phải gọi

https://graph.facebook.com/USER_ID/home 

cung cấp cho bạn phản hồi JSON.

Sau đó, bạn cần phải phân tích cú pháp JSON thành bố cục mới trên trang web của tổ chức.

gây nhầm lẫn, gọi

https://graph.facebook.com/USER_ID/feed 

không lấy newsfeed, nhưng bài tường của người dùng, mà có thể hoặc không thể là những gì bạn muốn.

Here là hướng dẫn trải qua những điều cơ bản về thiết lập nguồn cấp tin tức trên trang web có php.

1

Chắc chắn có thể thực hiện được. Bạn chỉ cần nhận mã thông báo truy cập thông qua facebook và sau đó bạn có thể truy cập nguồn cấp dữ liệu JSON của các bài đăng thông qua API facebook.

Bạn cần truy cập trang web dành cho nhà phát triển facebook và nhấp vào Ứng dụng ở trên cùng. Làm theo các bước để có được một ứng dụng bí mật và ID khách hàng. Sau đó chỉ cần đặt chúng vào URL sau và nó sẽ trở lại thẻ truy cập của bạn:

https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET

Từng bước hướng dẫn tại đây: http://smashballoon.com/custom-facebook-feed/access-token/

4

Cách dễ nhất để làm điều này là để đọc timeline RSS Facebook:

function FacebookFeed($pagename, $count, $postlength) { 
$pageID = file_get_contents('https://graph.facebook.com/?ids='.$pagename.'&fields=id'); 
$pageID = json_decode($pageID,true); 
$pageID = $pageID[$pagename]['id']; 

ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9'); 
$rssUrl = 'http://www.facebook.com/feeds/page.php?format=rss20&id='.$pageID; 
$xml = simplexml_load_file($rssUrl); 
$entry = $xml->channel->item; 

for ($i = 0; $i < $count; $i++) { 
$description_original = $entry[$i]->description; 
$description_striphtml = strip_tags($description_original); 
$description = substr($description_striphtml, 0, $postlength); 

$link = $entry[$i]->link; 

$date_original = $entry[$i]->pubDate; 
$date = date('d-m-Y, H:i', strtotime($date_original)); 

$FB_feed .= $description."&hellip;<br>"; 
$FB_feed .= "<small><a href='".$link."'>".$date."</a></small><br><br>"; 
} 

return $FB_feed; 
} 
+0

Chỉnh sửa: Oh xin lỗi, nó vẫn hoạt động. –

1

Tài liệu này nêu chi tiết các bước nhận mã thông báo truy cập facebook và sử dụng mã thông báo để tìm nạp nguồn cấp dữ liệu FB.

Ví dụ: Một ví dụ sống là có sẵn trong

https://newtonjoshua.com

Giới thiệu về lập biểu đồ API: Sơ đồ API là cách chủ yếu để lấy dữ liệu vào và ra khỏi Nền tảng của Facebook. Đó là API dựa trên HTTP cấp thấp mà bạn có thể sử dụng để truy vấn dữ liệu, đăng câu chuyện mới, quản lý quảng cáo, tải lên ảnh và nhiều tác vụ khác mà ứng dụng có thể cần thực hiện.

FaceBook Apps:

https://developers.facebook.com

Tạo một ứng dụng Facebook. Bạn sẽ nhận được một App_IdApp_Secret

Graph API Explorer:

https://developers.facebook.com/tools/explorer/{{App_Id}}/method = GET & path = tôi% 2Ffeed & version = V2.8

Bạn sẽ nhận được số access_token ngắn ngủi. Vì vậy, đây sẽ là short_lived_access_token của chúng tôi.

lưu ý: trong khi tạo mã thông báo truy cập, hãy chọn tất cả các trường fb mà bạn yêu cầu. Điều này sẽ cấp quyền truy cập mã thông báo để tìm nạp các trường đó.

Truy cập Mã Extension:

https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id={{APP_ID}} & client_secret = {{App_Secret}} & fb_exchange_token = {{ngắn ngủi-access_token}}

Bạn sẽ nhận được access_token có giá trị 2 m onths.

Truy cập Mã Debugger:

https://developers.facebook.com/tools/debug/accesstoken?q={{}} access_token & version = V2.8

bạn có thể kiểm tra kiểm tra các chi tiết của access_token.

Facebook SDK cho JavaScript: Bao gồm trong HTML của bạn dưới đây hoạt Javascript để tải không đồng bộ SDK vào trang của bạn

 (function (d, s, id) { 
      var js, fjs = d.getElementsByTagName(s)[0]; 
      if (d.getElementById(id)) { 
       return; 
      } 
      js = d.createElement(s); 
      js.id = id; 
      js.src = "//connect.facebook.net/en_US/sdk.js"; 
      fjs.parentNode.insertBefore(js, fjs); 
     }(document, 'script', 'facebook-jssdk')); 

Graph API: Hãy thực hiện cuộc gọi API để có được id FB của chúng tôi , ảnh hồ sơ, ảnh bìa và nguồn cấp dữ liệu.

window.fbAsyncInit = function() { 
    FB.init({ 
     appId: '{{App_Id }}', 
     xfbml: true, 
     version: 'v2.7' 
    }); 
    FB.api(
     '/me', 
     'GET', { 
      fields: 'id,picture{url},cover,feed', 
      access_token: {{access_token}} 
     }, 
     function (response) { 
     if (response.error) { 
       console.error(response.error.message); 
      } 
      if (response.picture.data.url) { 
       profilePic = response.picture.data.url; 
      } 
      if (response.cover.source) { 
       coverPic = response.cover.source; 
      } 
      if (response.feed.data) { 
     feeds = response.feed.data; 
       feeds.forEach(function (feed) { 
      // view each feed content 
       }); 
      } 
      if (response.feed.paging.next) { 
       nextFeedPage = response.feed.paging.next; 
     // a request to nextFeedPage will give the next set of feeds 
      } 

     } 
    ); 
}; 

Sử dụng Graph API Explorer để thiết kế truy vấn của bạn cần được nhập vào 'lĩnh vực' (ví dụ: 'id, hình ảnh {url}, bìa, thức ăn')

Bây giờ bạn có thể lấy của bạn Dữ liệu Facebook từ Facebook Graph API sử dụng access_token của bạn.

Tham khảo https://developers.facebook.com/docs/graph-api/overview/

Lưu ý: access_token của bạn sẽ hết hạn trong 2 tháng. Tạo access_token mới sau đó.

Các vấn đề liên quan