02/10/2018, 11:30

[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 IDSercet 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 group hoặc fanpage facebook

+ Để 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ề:

facebook json

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:

phần mềm lấy thông tin group facebook vb.net

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!

Tags: facebookbất động sảnmua bánchợ tốthttp request
0