Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook graph api 使用Microsoft Excel为Facebook图形数据发出GET请求_Facebook Graph Api_Excel_Get_Vba - Fatal编程技术网

Facebook graph api 使用Microsoft Excel为Facebook图形数据发出GET请求

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

我正在尝试使用一个get请求,在Excel中从Facebook Graph获取元数据

我正在使用Excel2003

我在Excel中有一列Facebook图表中使用的5000个应用程序范围用户id。我想制作一个宏来从每个图中提取信息,可以在中找到。每个图都是一个简单的HTML页面,内容如下

{
    "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