@Tony1337

C# — Как вывести новости на форму?

Пишу программу на C# (Windows Forms). Начал изучать VK API, и нужно было вывести на форму новости (NewsFeed.search). Понятия не имею как это сделать, кто работал с VK API, прошу вашей помощи, за ранее спасибо!

P.S. Как работает функция, я понимаю
  • Вопрос задан
  • 898 просмотров
Пригласить эксперта
Ответы на вопрос 1
Protos
@Protos
Спрашивай - отвечу
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();
        }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы