Facebook graph api 使用Microsoft Excel为Facebook图形数据发出GET请求
我正在尝试使用一个get请求,在Excel中从Facebook Graph获取元数据 我正在使用Excel2003 我在Excel中有一列Facebook图表中使用的5000个应用程序范围用户id。我想制作一个宏来从每个图中提取信息,可以在中找到。每个图都是一个简单的HTML页面,内容如下Facebook graph api 使用Microsoft Excel为Facebook图形数据发出GET请求,facebook-graph-api,excel,get,vba,Facebook Graph Api,Excel,Get,Vba,我正在尝试使用一个get请求,在Excel中从Facebook Graph获取元数据 我正在使用Excel2003 我在Excel中有一列Facebook图表中使用的5000个应用程序范围用户id。我想制作一个宏来从每个图中提取信息,可以在中找到。每个图都是一个简单的HTML页面,内容如下 { "id": "XXXXXXXXXXXX", "first_name": "XXX", "gender": "XXX", "last_name": "XXX", "l
{
"id": "XXXXXXXXXXXX",
"first_name": "XXX",
"gender": "XXX",
"last_name": "XXX",
"link": "https://www.facebook.com/XXX",
"locale": "id_ID",
"name": "XXX",
"username": "XXX"
}
我希望将此HTML用于解析,以便将每个字段放入Excel中应用程序范围用户id旁边的单元格中。是否有任何方法可以在Excel中作为GET请求执行此操作,以便根据第一列中的ID动态获取每一行的外观:
id | first_name | last_name | gender | link | locale | username
或者干脆
id | everything as a text string
不知道如何为此编写脚本,我尝试查找Microsoft.XMLHTTP以在VBA编辑器中创建一个模块,但不知道从何处开始
谢谢试试这个,这里有一个获得前100个ID的示例。在某些情况下,不需要涉及JSON解析,
Split
函数就可以了
Sub GetSomeGraphData()
Dim lId, lRow, aPattern
aPattern = Array("id", "first_name", "last_name", "gender", "link", "locale", "username")
lRow = 1
' example getting first 100 records
For lId = 1 To 100
If WriteGraphData(lId, lRow, aPattern) Then lRow = lRow + 1
DoEvents
Next
End Sub
Function WriteGraphData(lId, lRow, aPattern)
' lId - ID you want to get data for
' lRow - Excel sheet row where to write data
' aPattern - array containing the parameters to be written, in order
' returns: True - if at least one cell was populated with a value, False - in case of blank line
Dim oXMLHttp, lCol, sProp, aTemp
Set oXMLHttp = CreateObject("Microsoft.XMLHttp")
oXMLHttp.Open "GET", "https://graph.facebook.com/" & lId, False
oXMLHttp.Send ("")
lCol = 1
WriteGraphData = False
For Each sProp In aPattern
aTemp = Split(oXMLHttp.ResponseText, """" & sProp & """: """)
If UBound(aTemp) = 1 Then
aTemp = Split(aTemp(1), """")
Cells(lRow, lCol).Value = aTemp(0)
WriteGraphData = True
End If
lCol = lCol + 1
Next
Set oXMLHttp = Nothing
End Function
这不是HTML而是JSON,它是一种基于javascript的“数据传输”表示法。尝试通过谷歌搜索“VBA JSON”,了解一些如何在VBA中解析JSON的方法。您可以使用XMLHTTP执行实际的GET。谢谢,Tim Williams