Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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
Asp.net 调用和序列化FB提要_Asp.net_Json_Vb.net_Facebook Graph Api - Fatal编程技术网

Asp.net 调用和序列化FB提要

Asp.net 调用和序列化FB提要,asp.net,json,vb.net,facebook-graph-api,Asp.net,Json,Vb.net,Facebook Graph Api,我正在使用多个FB页面调用FB提要 /posts?ids=OI.Plavipingvin,217384491624554&limit=5&fields=message,created_time,id 这是我得到的反馈: { "217384491624554": { "data": [ { "message": "Obećanje i zavjet položeni. Dobrodošli u OI Javor ❤",

我正在使用多个FB页面调用FB提要

/posts?ids=OI.Plavipingvin,217384491624554&limit=5&fields=message,created_time,id
这是我得到的反馈:

{
   "217384491624554": {
     "data": [
       {
         "message": "Obećanje i zavjet položeni. Dobrodošli u OI Javor ❤",
         "created_time": "2017-01-08T01:05:25+0000",
         "id": "217384491624554_1575515795811410"
       },
       {
         "message": "Zimovanje u punom tijeku :-)",
         "created_time": "2017-01-04T10:06:57+0000",
         "id": "217384491624554_1572127976150192"
       }
     ],
     "paging": {
       "previous": "https://graph.facebook.com/v2.8/217384491624554/posts?fields=message,created_time,id&limit=2&format=json&since=1483837525&access_token=EAACEdEose0cBAMlhIYetCMo0m83Jdo3F7rk4NYmm47Q1T19UDxlKhMQnjDW4Mmelqu3vzTITnVA7E0ZBgl6jDmlHC8J7ZCX4TW2xB0xoHIySu3MK5d9yUWjqMLdUrRab9KTfH1WyzpEfIbxG7JlhPnZACfiFWFfhvO9vrAZCrAZDZD&__paging_token=enc_AdB6GEshkXkXuRJcuiHCF1aoS4rK7Myp3P6mFZAUFeZAPbRVdtmihE7UAOIlFDuTjVKHvmBeiMLmWfIZBfCER7cYrS08kccUDDoixEb2ZABASuwAigZDZD&__previous=1",
       "next": "https://graph.facebook.com/v2.8/217384491624554/posts?fields=message,created_time,id&limit=2&format=json&access_token=EAACEdEose0cBAMlhIYetCMo0m83Jdo3F7rk4NYmm47Q1T19UDxlKhMQnjDW4Mmelqu3vzTITnVA7E0ZBgl6jDmlHC8J7ZCX4TW2xB0xoHIySu3MK5d9yUWjqMLdUrRab9KTfH1WyzpEfIbxG7JlhPnZACfiFWFfhvO9vrAZCrAZDZD&until=1483524417&__paging_token=enc_AdBeiIQZBem7NbobO8r183HtpPnZAOY6CRyehrr8uDJZBXkSS5kKS3YpqdmosFZCGZBobXwMnKW4hEsAIEZCjhYCAL2NdAX7ZCZAyWHZB7GhQCS0IQIqEZBwZDZD"
     }
   },
   "OI.Plavipingvin": {
     "data": [
       {
         "message": "Sretnu novu godinu želi vam Uprava odreda. Budite sretni i zadovoljni. I naravno - pripravni za nove avanture! The class structure would have to look like this:

Imports Newtonsoft.Json

Public Class FBData
    <JsonProperty(PropertyName:="217384491624554")>
    Public Property Feed_217384491624554 As FBFeed

    <JsonProperty(PropertyName:="OI.Plavipingvin")>
    Public Property Feed_OIPlavipingvin As FBFeed
End Class

Public Class FBFeed
    Public Property data As Datum()
    Public Property paging As Paging
End Class

Public Class Datum
    Public Property message As String
    Public Property created_time As DateTime
    Public Property id As String
End Class

Public Class Paging
    Public Property previous As String
    Public Property [next] As String
End Class
{
"217384491624554": {
“数据”:[
{
“信息”:“Obećanje i zavjet položeni.Dobrodošli u OI Javor”❤",
“创建时间”:“2017-01-08T01:05:25+0000”,
“id”:“217384491624554_15751579581410”
},
{
“信息”:“Zimovanje u punom tijeku:-)”,
“创建时间”:“2017-01-04T10:06:57+0000”,
“id”:“217384491624554_1572127976150192”
}
],
“分页”:{
“以前的”:https://graph.facebook.com/v2.8/217384491624554/posts?fields=message,创建时间、id和限制=2&format=json&From=1483837525&access\u令牌=EAACEDEOSE0BAMLHIYETCMO0M83JDO3F7RK4NymM47Q1T19UDXLKHMQNJDW4MMELQU3VZTITNVA7E0ZBGL6JDMLHC8J7ZCx4TW2XOB0XOHIYSU3MK5D9YUWYWWWJQMLDURRAB9KTFH1WYZPEXB7JLHPNZACWFFH9VRAZZZZZZKKKKZZD和CF1aoS4rK7Myp3P6mFZAUFeZAPbRVdtmihE7UAOIlFDuTjVKHvmBeiMLmWfIZBfCER7cYrS08kccUDDoixEb2ZABASuwAigZDZD和(上一个=1“,
“下一步”:https://graph.facebook.com/v2.8/217384491624554/posts?fields=message,创建时间、id和限制=2&format=json&access\u令牌=EAACEDEOSE0BAMLHIYETCMO0M83JDO3F7RK4NYM47Q1T19UDXLKHMQNJDW4MMELQU3VZTITNVA7E0ZBGL6JDMLHC8J7ZCX4TW2xB0XOHIYSU3MK5D9YUWYZQMLDURRAB9FH1WYZPEFIBFG7JLHPNZACWFFHVO9VRAZRAZDZD&TIL=1483524417和183HTPPNZAOY6Cryehr8UDJZBXKS5KKS3YPQDMOSFZCGZBOBXWMNKW4HESAIZCJHYCAL2N7ZCZCZH7GHQCS0IQEZBWZD“
}
},
“波立维文号”:{
“数据”:[
{

“消息”:“Sretnu novu godinuželi vam Uprava odreda.Budite sretni i zadovoljni.i naravno-pripravni za nove avanture!”类结构必须如下所示:

Dim array1 As FBData = GetPosts ( accessToken )

Dim MyData As New List(Of Datum)
MyData.AddRange(array1.Feed_217384491624554.data)
MyData.AddRange(array1.Feed_OIPlavipingvin.data)

For Each Msg As Datum In MyData.OrderByDescending(Function(x) x.created_time)
    Response.Write(Msg.message & ". " & Msg.created_time & "<br />")
Next
导入Newtonsoft.Json
公共类数据
公共财产Feed_2173844491624554作为FBFeed
公共财产Feed_OIPlavipingvin作为FBFeed
末级
公共类FBFeed
公共财产数据作为基准()
公共属性分页作为分页
末级
公共类数据
作为字符串的公共属性消息
创建的公共属性\u time为DateTime
作为字符串的公共属性id
末级
公共类分页
前一个作为字符串的公共属性
公共属性[next]作为字符串
末级
更新:用法:

Public Class FBFeed
    Public Property data As Datum()
    Public Property paging As Paging
End Class

Public Class Datum
    Public Property message As String
    Public Property created_time As DateTime
    Public Property id As String
End Class

Public Class Paging
    Public Property previous As String
    Public Property [next] As String
End Class
Dim array1 As FBData=GetPosts(accessToken)
将MyData标注为新列表(数据)
MyData.AddRange(数组1.Feed_2173844491624554.data)
MyData.AddRange(数组1.Feed\u OIPlavipingvin.data)
对于MyData.OrderByDescending(函数(x)x.created_time)中作为数据的每个消息
Response.Write(Msg.message&“&Msg.created\u time&“
”) 下一个
类结构必须如下所示:

Dim array1 As FBData = GetPosts ( accessToken )

Dim MyData As New List(Of Datum)
MyData.AddRange(array1.Feed_217384491624554.data)
MyData.AddRange(array1.Feed_OIPlavipingvin.data)

For Each Msg As Datum In MyData.OrderByDescending(Function(x) x.created_time)
    Response.Write(Msg.message & ". " & Msg.created_time & "<br />")
Next
导入Newtonsoft.Json
公共类数据
公共财产Feed_2173844491624554作为FBFeed
公共财产Feed_OIPlavipingvin作为FBFeed
末级
公共类FBFeed
公共财产数据作为基准()
公共属性分页作为分页
末级
公共类数据
作为字符串的公共属性消息
创建的公共属性\u time为DateTime
作为字符串的公共属性id
末级
公共类分页
前一个作为字符串的公共属性
公共属性[next]作为字符串
末级
更新:用法:

Public Class FBFeed
    Public Property data As Datum()
    Public Property paging As Paging
End Class

Public Class Datum
    Public Property message As String
    Public Property created_time As DateTime
    Public Property id As String
End Class

Public Class Paging
    Public Property previous As String
    Public Property [next] As String
End Class
Dim array1 As FBData=GetPosts(accessToken)
将MyData标注为新列表(数据)
MyData.AddRange(数组1.Feed_2173844491624554.data)
MyData.AddRange(数组1.Feed\u OIPlavipingvin.data)
对于MyData.OrderByDescending(函数(x)x.created_time)中作为数据的每个消息
Response.Write(Msg.message&“&Msg.created\u time&“
”) 下一个
虽然我的另一个答案有效,但如果一个人有一堆提要要处理,这会有点笨拙,因此这应该是一个更有效的答案。我选择不编辑上一个答案,因为它根据个人的需要而有效

鉴于这一修订后的班级结构

Public Shared Function GetPosts(accessToken As String, ParamArray args() As String) As Dictionary(Of String, FBFeed)
    'Dim APIlink As String = "https://graph.facebook.com/posts?ids=OI.Plavipingvin,217384491624554&limit=5&fields=message,created_time,id&access_token=" & accessToken

    Dim Ids As String = Join(args, ",")
    Dim APITemplate As String = "https://graph.facebook.com/posts?ids={0}&limit=5&fields=message,created_time,id&access_token={1}"
    Dim APIlink As String = String.Format(APITemplate, Ids, accessToken)

    Using client As New WebClient()
        client.Encoding = Text.Encoding.UTF8
        Dim strJson As String = client.DownloadString(APIlink)

        Return Newtonsoft.Json.JsonConvert.DeserializeObject(Of Dictionary(Of String, FBFeed))(strJson)
    End Using
End Function
…这是修改后的GetPosts方法

Dim MyData As New List(Of Datum)

Dim IdList As New List(Of String)
IdList.Add("OI.Plavipingvin")
IdList.Add("217384491624554")

With GetPosts("Access Token Here", IdList.ToArray)
    ' We have a Dictionary(Of String, FBFeed) we can flatten with SelectMany
    '   and consolidate the Datum arrays into the MyData List(Of Datum) above
    MyData.AddRange(.Values.SelectMany(Function(x) x.data).ToList())
End With

For Each Msg As Datum In MyData.OrderByDescending(Function(x) x.created_time)
    Response.Write(Msg.message & ". " & Msg.created_time & "<br />")
Next
…页面请求处理程序中的用法变为

Dim MyData作为新列表(数据)
Dim IdList作为新列表(字符串)
IdList.Add(“OI.Plavipingvin”)
IdList.Add(“2173844941624554”)
使用GetPosts(“此处的访问令牌”,IdList.ToArray)
“我们有一个字典(字符串、FBFeed),我们可以用SelectMany将其展平
'并将基准阵列合并到上面的MyData列表中
MyData.AddRange(.Values.SelectMany(函数(x)x.data.ToList())
以
对于MyData.OrderByDescending(函数(x)x.created_time)中作为数据的每个消息
Response.Write(Msg.message&“&Msg.created\u time&“
”) 下一个
虽然我的另一个答案有效,但如果一个人有一堆提要要处理,这会有点笨拙,因此这应该是一个更有效的答案。我选择不编辑上一个答案,因为它根据个人的需要而有效

鉴于这一修订后的班级结构

Public Shared Function GetPosts(accessToken As String, ParamArray args() As String) As Dictionary(Of String, FBFeed)
    'Dim APIlink As String = "https://graph.facebook.com/posts?ids=OI.Plavipingvin,217384491624554&limit=5&fields=message,created_time,id&access_token=" & accessToken

    Dim Ids As String = Join(args, ",")
    Dim APITemplate As String = "https://graph.facebook.com/posts?ids={0}&limit=5&fields=message,created_time,id&access_token={1}"
    Dim APIlink As String = String.Format(APITemplate, Ids, accessToken)

    Using client As New WebClient()
        client.Encoding = Text.Encoding.UTF8
        Dim strJson As String = client.DownloadString(APIlink)

        Return Newtonsoft.Json.JsonConvert.DeserializeObject(Of Dictionary(Of String, FBFeed))(strJson)
    End Using
End Function
…这是修改后的GetPosts方法

Dim MyData As New List(Of Datum)

Dim IdList As New List(Of String)
IdList.Add("OI.Plavipingvin")
IdList.Add("217384491624554")

With GetPosts("Access Token Here", IdList.ToArray)
    ' We have a Dictionary(Of String, FBFeed) we can flatten with SelectMany
    '   and consolidate the Datum arrays into the MyData List(Of Datum) above
    MyData.AddRange(.Values.SelectMany(Function(x) x.data).ToList())
End With

For Each Msg As Datum In MyData.OrderByDescending(Function(x) x.created_time)
    Response.Write(Msg.message & ". " & Msg.created_time & "<br />")
Next
…页面请求处理程序中的用法变为

Dim MyData作为新列表(数据)
Dim IdList作为新列表(字符串)
IdList.Add(“OI.Plavipingvin”)
IdList.Add(“2173844941624554”)
使用GetPosts(“此处的访问令牌”,IdList.ToArray)
“我们有一个字典(字符串、FBFeed),我们可以用SelectMany将其展平
'并将基准阵列合并到上面的MyData列表中
MyData.AddRange(.Values.SelectMany(函数(x)x.data.ToList())
以
对于MyData.OrderByDescending(函数(x)x.created_time)中作为数据的每个消息
Response.Write(Msg.message&“&Msg.created\u time&“
”) 下一个
@MrGadget-我还有一个问题,如果你能帮我解决这个问题,请帮我(我有20个页面ID要调用,然后显示排序的JSON-这将是在一个API调用中调用它们,然后对一个JSON数组排序的更有效的方法)为清楚起见,请在此处添加您当前的代码。我已使用当前代码更改了问题。@MrGadget-我有另一个问题,请您帮助我解决(我有20个页面ID要调用,然后显示排序的JSON-这将