繁体   English   中英

循环通过从 facebook 图 api 收到的 json 响应,并获取最新的值。 (然后,将其存储在 dot net core 的数据库中)

[英]Loop through a json response received from facebook graph api in c# and get the latest value. (then, store it in database in dot net core)

我正在使用 facebook 的图表 API 来获取 facebook 帖子的永久链接。 但似乎端点总是返回所有已发布帖子的数组。

因此,我需要获取响应并循环遍历它,并仅获取始终是响应中第一对的最新值。

这是我使用图形资源管理器得到的响应。 我只需要数据数组中的第一对,即 permalink_url 和 id,这样我就可以将它们分别存储在数据库中,以便使用永久链接将帖子嵌入我的网站。

{
  "data": [
    {
      "permalink_url": "https://www.facebook.com/347775946439542/photos/a.348021906414946/358023508748119/?type=3",
      "id": "347775946439542_358023508748119"
    },
    {
      "permalink_url": "https://www.facebook.com/347775946439542/photos/a.348021906414946/350654269485043/?type=3",
      "id": "347775946439542_350654269485043"
    },
    {
      "permalink_url": "https://www.facebook.com/347775946439542/photos/a.348021906414946/350651839485286/?type=3",
      "id": "347775946439542_350651839485286"
    }
  ],
  "paging": {
    "cursors": {
      "before": "QVFIUlRGODNTaFZAueEUxQ2VvcHlrMUw1MGE0U0FCblhZAY1hVbFBGUHhHdXlrSkgzSm0tb05pSGpFOXBYVG9EcnN5T21sQTgtYy1jSjhrZAW9WYmg5YmpVMXpQWTRLUkQ3ZA05PcEZAjUTNyV2VuV05hRG8yVlBaa3pia3dFTVRLU05nU0pU",
      "after": "QVFIUlBHMG44ZAkxHdUsxb012bVlOQ0ZAfaDhHLUZA6VEt6MHd0QjJYZADlfZAVk2aExSdlJESUU2SlVDaVJsYzI4dnlmUllZASzhKd3Nkb09aa2ZAMRHZAFTGhMVHFoQ1hjNE5zNDJ2aV96UGtVQUpBeHE1b2xUTzk2SHZALLTZA1Y3pZAZAmJOMENS"
    }
  }
}

我通过一些使用 newtonsoft 但无法使其工作的问题完成了 go。 因此,有关如何在 C# (剃刀页面)中循环然后从方法中返回它们的任何帮助。 然后,我需要将永久链接和 id 都存储在数据库中。

这是我的方法:这里 _getPermalink 有我必须命中的端点。

'str' 也有如下所示的响应。 我必须从中获取永久链接和 ID。

public string GetPermalink()
        {

            WebClient client = new WebClient();
            Stream data = client.OpenRead(_getPermalink);
            StreamReader reader = new StreamReader(data);
            string str = "";
            str = reader.ReadLine();
            data.Close();

            return str;
        }

当我从方法调用此端点时: string res = facebook.GetPermalink(); (这里的 facebook 只是一个构造函数,其中包含调用端点所需的值,例如页面 id、访问令牌等)

相同的响应看起来像这样。

{"data":[{"permalink_url":"https:\/\/www.facebook.com\/347775946439542\/photos\/a.348021906414946\/358023508748119\/?type=3","id":"347775946439542_358023508748119"},{"permalink_url":"https:\/\/www.facebook.com\/347775946439542\/photos\/a.348021906414946\/350654269485043\/?type=3","id":"347775946439542_350654269485043"},{"permalink_url":"https:\/\/www.facebook.com\/347775946439542\/photos\/a.348021906414946\/350651839485286\/?type=3","id":"347775946439542_350651839485286"}],"paging":{"cursors":{"before":"QVFIUlRGODNTaFZAueEUxQ2VvcHlrMUw1MGE0U0FCblhZAY1hVbFBGUHhHdXlrSkgzSm0tb05pSGpFOXBYVG9EcnN5T21sQTgtYy1jSjhrZAW9WYmg5YmpVMXpQWTRLUkQ3ZA05PcEZAjUTNyV2VuV05hRG8yVlBaa3pia3dFTVRLU05nU0pU

我对 C# 中的 json 对象/数组的概念和使用 newtonsoft 比较陌生。 任何帮助和解释表示赞赏。 (PS:有没有办法只使用 facebook 图 api 获取最新帖子的永久链接和 ID?)

鉴于您发布的 JSON 数据,您可以使用以下单行从中获取第一个永久链接 URL:

string permalinkUrl = (string)JObject.Parse(json).SelectToken("data[0].permalink_url");

演示: https://dotnetfiddle.net/SUgz51

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM