Просмотр списка TweetInvi не может получить TweetID

Я пытаюсь получить идентификатор твита через TweetInvi API, но всегда получаю исключение нулевой точки. У меня нет вариантов, и я не могу понять, что я сделал неправильно. Вот мой код. Проблема возникает, когда я выбираю нужный элемент из представления и нажимаю ретвитнуть.

namespace MIF_TwitterApplication
{
public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
        Auth.SetUserCredentials("KEY", "KEY", "KEY",
            "KEY");
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        var user = User.GetAuthenticatedUser();

        //PROFILE
        profileImage.ImageLocation = user.ProfileImageUrlFullSize;

        nameLabel.Text = user.Name;
        usernameLabel.Text = "@" + user.ScreenName;
        followersLabel.Text = "Followers: " + user.FollowersCount;



    }
    //Tweeting with PICS
    private void tweetBtn_Click(object sender, EventArgs e)
    {
        if (tweetBox.Text != "")
        {
            if (imgUploadPath.Text != "")
            {
                byte[] file = File.ReadAllBytes(imgPreview.ImageLocation);
                Tweet.PublishTweetWithImage(tweetBox.Text, file);
                imgPreview.ImageLocation = "";
                imgUploadPath.Text = "";
                tweetBox.Clear();
                MessageBox.Show("Tweet posted!");
            }
            else
            {
                Tweet.PublishTweet(tweetBox.Text);
                MessageBox.Show("Tweet posted!");
                tweetBox.Clear();
            }

        }
        else
        {
            MessageBox.Show("Please enter text!");
            tweetBox.Clear();
        }
    }

    private void addImg_Click(object sender, EventArgs e)
    {
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.ShowDialog();
        imgPreview.ImageLocation = ofd.FileName;
        imgUploadPath.Text = ofd.FileName;
    }

    private void dropImg_Click(object sender, EventArgs e)
    {
        imgPreview.ImageLocation = "";
        imgUploadPath.Text = "";

    }

    private void timelineBtn_Click(object sender, EventArgs e)
    {
        var user = User.GetAuthenticatedUser();
        var getTweets = Timeline.GetHomeTimeline(40);

        listView1.Clear();
        listView1.View = View.Details;
        listView1.GridLines = true;
        listView1.FullRowSelect = true;

        listView1.Columns.Add("Tweet", 570);
        listView1.Columns.Add("Created By", 130);
        listView1.Columns.Add("Create Time", 130);
        listView1.Columns.Add("Likes", 60);
        listView1.Columns.Add("Retweets", 70);
        int x = 0;
        foreach (var t in getTweets)
        {

            ListViewItem listItem = new ListViewItem(t.Text);
            listItem.SubItems.Add(t.CreatedBy.ScreenName.ToString());
            listItem.SubItems.Add(t.CreatedAt.ToString());
            listItem.SubItems.Add(t.FavoriteCount.ToString());
            listItem.SubItems.Add(t.RetweetCount.ToString());
            listView1.Items.Add(listItem);
            listView1.Items[x].Tag = t.Id;

        }
    }

    private void postsBtn_Click(object sender, EventArgs e)
    {
        var user = User.GetAuthenticatedUser();
        var getTweets = Timeline.GetUserTimeline(user, 40);

        listView1.Clear();
        listView1.View = View.Details;
        listView1.GridLines = true;
        listView1.FullRowSelect = true;

        listView1.Columns.Add("Tweet", 570);
        listView1.Columns.Add("Created By", 130);
        listView1.Columns.Add("Create Time", 130);
        listView1.Columns.Add("Likes", 60);
        listView1.Columns.Add("Retweets", 70);
        int x = 0;
        foreach (var t in getTweets)
        {

            ListViewItem listItem = new ListViewItem(t.Text);
            listItem.SubItems.Add(t.CreatedBy.ScreenName.ToString());
            listItem.SubItems.Add(t.CreatedAt.ToString());
            listItem.SubItems.Add(t.FavoriteCount.ToString());
            listItem.SubItems.Add(t.RetweetCount.ToString());
            listView1.Items.Add(listItem);
            listView1.Items[x].Tag = t.Id;

        }
    }

    private void retweetBtn_Click(object sender, EventArgs e)
    {
        var checkedItems = listView1.SelectedItems;
        long a = (long)listView1.SelectedItems[0].Tag;
        var user = User.GetAuthenticatedUser();

        var retweet = Tweet.PublishRetweet(a);
        MessageBox.Show("Retweet was successfull");
        listView1.Items.Clear();
    }
}

}

Перерывы на длинном, я не могу понять, как получить этот длинный идентификатор твита

Вот полный код


person Albertas    schedule 19.02.2018    source источник
comment
что ты получишь за checkedItems ?   -  person SilentCoder    schedule 19.02.2018


Ответы (1)


Проблема заключалась в том, что мой X не увеличивался правильно, так как он был вне цикла for.

    int x = 0;

    foreach (var t in getTweets)
    {

        ListViewItem listItem = new ListViewItem(t.Text);
        listItem.SubItems.Add(t.CreatedBy.ScreenName.ToString());
        listItem.SubItems.Add(t.CreatedAt.ToString());
        listItem.SubItems.Add(t.FavoriteCount.ToString());
        listItem.SubItems.Add(t.RetweetCount.ToString());
        listView1.Items.Add(listItem);
        listView1.Items[x].Tag = t.Id;

        x = x +1;

    }
person Albertas    schedule 21.03.2018