[VB.NET] Hướng dẫn lấy bảng tin và bình luận Group, Fanpage sử dụng Facebook API
Bài viết hôm nay, mình sẽ chia sẽ cho các bạn các lấy bài viết và comment của Group hoặc Fanpage Facebook. Đầu tiên, để lấy được thông tin group hoặc fanpage các bạn phải đăng ký một ứng dụng trên Facebook . Các bạn có thể vào trang ...
Bài viết hôm nay, mình sẽ chia sẽ cho các bạn các lấy bài viết và comment của Group hoặc Fanpage Facebook.
Đầu tiên, để lấy được thông tin group hoặc fanpage các bạn phải đăng ký một ứng dụng trên Facebook. Các bạn có thể vào trang http://developers.facebook.com để đăng ký ứng dụng.
Cách đăng ký ứng dụng thì trong bài viết này mình không có hướng dẫn, các bạn có thể tìm hiểu trên google.
Sau khi đăng ký thành công ứng dụng thì Facebook sẽ cung cấp cho chúng ta: 1 App ID và Sercet KEY. Khi chúng ta có được hai thông tin này chúng ta sẽ truy vấn facebook để lấy mã Token do Facebook trả về để chúng ta lấy dữ liệu.
+ Để lấy thông tin của group hay fanpage facebook nào, chúng ta cần phải lấy ID của group đó. Và truy vấn với cú pháp như sau: Facebook sẽ trả về cho chúng ta một chuỗi Json, và từ đó chúng ta đọc chuỗi json đó và hiển thị lên ứng dụng của mình
Cú pháp:
https://graph.facebook.com/{id_group}/feed?access_token={Token}&fields=id,message,link,name,created_time,from,object_id
Giao diện dưới đây là file json mà facebook gởi về:
Dưới đây là giao diện ứng dụng của mình khi các bạn đọc json và hiển thị lên:
Do mình không có thời gian nên, mình sẽ chia sẽ source code cho các bạn. Các bạn nào thắc mắc có thể để lại comment mình sẽ giải đáp.
Imports System.ComponentModel Imports System.IO Imports System.Net Imports System.Text Imports DevExpress.XtraSplashScreen Imports Newtonsoft.Json Imports Newtonsoft.Json.Linq Partial Public Class Form1 Shared Sub New() DevExpress.UserSkins.BonusSkins.Register() DevExpress.Skins.SkinManager.EnableFormSkins() End Sub Public Sub New() InitializeComponent() End Sub Private Sub SimpleButton1_Click(sender As Object, e As EventArgs) Handles SimpleButton1.Click SplashScreenManager.ShowForm(Me, GetType(loading), True, True, False) Dim sotrang As String = txtsotrang.Text Dim list_group As New List(Of String) list_group = IO.File.ReadAllLines(Application.StartupPath + "" + "listgroup.txt").ToList ' khởi tạo datatable Dim table As New DataTable table.Columns.Add("group", GetType(String)) table.Columns.Add("sothutu", GetType(String)) table.Columns.Add("giodang", GetType(String)) table.Columns.Add("nguoidang", GetType(String)) table.Columns.Add("noidung", GetType(String)) table.Columns.Add("ngaydang", GetType(String)) table.Columns.Add("nguoi_comment", GetType(String)) table.Columns.Add("link", GetType(String)) For m = 0 To list_group.Count - 1 Dim i As Integer = 0 Dim group As String = list_group.Item(m) Dim wc As New WebClient wc.Encoding = System.Text.Encoding.UTF8 Dim obj = wc.DownloadString("https://graph.facebook.com/" & group & "/feed?access_token={my_token}&fields=id,message,link,name,created_time,from,object_id&limit=" & sotrang) Dim o As JObject = JObject.Parse(obj) Dim postTitles = From p In o("data") For Each item As JObject In postTitles Try i = i + 1 Dim id As String = (item.SelectToken("id").ToString) Dim mess As String = (item.SelectToken("message").ToString) Dim thoigian As String = (DateTime.Parse(item.SelectToken("created_time").ToString)).ToString("dd/MM/yyyy") Dim giodang As String = (DateTime.Parse(item.SelectToken("created_time").ToString)).ToString("HH:mm:ss") Dim nguoidang As String = (item.SelectToken("from")("name").ToString) Dim idnguoidang As String = (item.SelectToken("from")("id").ToString) Dim linkbaiviet As String = "https://facebook.com/" + id 'Lấy thông tin comment Dim wc1 As New WebClient wc1.Encoding = System.Text.Encoding.UTF8 Dim obj1 = wc1.DownloadString("https://graph.facebook.com/" & id & "/comments?access_token=985937261471379|0MZV1pTzt26eYpQyK7UB3Kgs950&limit=1000") Dim o1 As JObject = JObject.Parse(obj1) Dim datas = From p In o1("data") Dim nguoi_comment As String = "" For Each items As JObject In datas nguoi_comment += "<span style='color: blue; font-weight: bold;'>" + (items.SelectToken("from")("name").ToString) + "</span>: " & (items.SelectToken("message").ToString) + "<br>" Next table.Rows.Add(group, i.ToString, giodang, nguoidang, mess, thoigian, nguoi_comment, linkbaiviet) Catch ex As Exception End Try Next Next GridControl1.DataSource = table SplashScreenManager.CloseForm(False) End Sub Private Sub SimpleButton2_Click(sender As Object, e As EventArgs) Handles SimpleButton2.Click Dim folderBrowserDialog1 As New FolderBrowserDialog() Dim dlr As DialogResult = folderBrowserDialog1.ShowDialog() If dlr = DialogResult.OK Then Dim folderName As String = folderBrowserDialog1.SelectedPath GridView1.ExportToXls(folderName & Convert.ToString("data.xls")) System.Diagnostics.Process.Start(folderName & Convert.ToString("data.xls")) End If End Sub Private Sub SimpleButton4_Click(sender As Object, e As EventArgs) Handles SimpleButton4.Click System.Diagnostics.Process.Start("listgroup.txt") End Sub End Class
Video demo ứng dụng:
CHÚC CÁC BẠN THÀNH CÔNG!