在 c# 中循环通过从 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 帖子的永久链接。但端点似乎总是 return 是所有已发布帖子的数组。
所以,我需要获取响应并循环遍历它,只获取始终是响应中第一对的最新值。
这是我使用图形浏览器得到的响应。我只需要数据数组中的第一对,即 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 但无法使其工作的问题。
因此,关于如何在 C#(razor 页面)中循环遍历此内容然后从方法中 return 它们的任何帮助。然后我需要在数据库中存储永久链接和 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 object/arrays 的概念和使用 newtonsoft 比较陌生。任何帮助和解释表示赞赏。
(PS:有没有办法使用 facebook 图 api 只获取最新帖子的永久链接和 ID?)
根据您发布的 JSON 数据,您可以使用以下一行从中获取第一个永久链接 URL:
string permalinkUrl = (string)JObject.Parse(json).SelectToken("data[0].permalink_url");
我正在使用 facebook 的图表 API 来获取 facebook 帖子的永久链接。但端点似乎总是 return 是所有已发布帖子的数组。
所以,我需要获取响应并循环遍历它,只获取始终是响应中第一对的最新值。
这是我使用图形浏览器得到的响应。我只需要数据数组中的第一对,即 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 但无法使其工作的问题。 因此,关于如何在 C#(razor 页面)中循环遍历此内容然后从方法中 return 它们的任何帮助。然后我需要在数据库中存储永久链接和 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 object/arrays 的概念和使用 newtonsoft 比较陌生。任何帮助和解释表示赞赏。 (PS:有没有办法使用 facebook 图 api 只获取最新帖子的永久链接和 ID?)
根据您发布的 JSON 数据,您可以使用以下一行从中获取第一个永久链接 URL:
string permalinkUrl = (string)JObject.Parse(json).SelectToken("data[0].permalink_url");