Answer the question
In order to leave comments, you need to log in
C# - How to display news on a form?
I am writing a program in C# (Windows Forms). I started to study the VK API, and it was necessary to display the news (NewsFeed.search) on the form. I have no idea how to do this, who worked with the VK API, I ask for your help, thanks in advance!
PS How the function works, I understand
Answer the question
In order to leave comments, you need to log in
using System;
using System.Data;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Newtonsoft.Json.Linq;
using System.Diagnostics;
using System.Collections.Generic;
using Newtonsoft.Json;
using System.Net.Mail;
using System.Net.Mime;
//далее ваш класс, допустим у вас есть кнопка и есть обработчик ее нажатия:
private async void button1_Click(object sender, EventArgs e)
{
List<string> News = new List<string>();
var json = JObject.Parse(await Download(string.Format("https://api.vk.com/method/newsfeed.get?v=5.64&access_token={0}&count={1}", Access_token, 10)));
if (!json.ToString().Contains("error"))
{
posts = (JArray)json["response"]["items"];
var query = from post in posts
select new
{
type = post["type"],//тип списка новости, соответствующий одному из значений параметра filters;
source_id = post["source_id"],//идентификатор источника новости (положительный — новость пользователя, отрицательный — новость группы);
date = post["date"],//время публикации новости в формате unixtime
text = post["text"],//находится в записях со стен и содержит текст записи;
post_id = post["post_id"]//идентификатор владельца стены, на которой размещена запись.
//другие параметры по желанию
};
foreach (var post in query)//перебираем новости и заносим в массив
{
News.Add("type = "+post.type+
", источник = "+ post.source_id +
", дата публикации = " + UnixTimeToDate(Convert.ToDouble(post.date))+
", текст новости = " + post.text +
", идентификатор поста = " + post.post_id
);
//делаем что хотим
}
for (int i = 0; i < News.Count; i++)
Console.WriteLine(News[i]+Environment.NewLine);
}
}
public static DateTime UnixTimeToDate(double unixTimeStamp)
{
return new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).AddSeconds(unixTimeStamp).ToLocalTime();
}
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question