I have an asp.net website which sends a tweet on a button click event.
I am using the TwitterApi for this and have an authenticated developer account.
This function was working from September 2018 until last month, but all of a sudden it won't send the tweets on request.
The response I get now is - "Id = 1, Status = WaitingForActivation, Method = "{null}", Result = "{Not yet computed}""
After searching around, this doesn't seem like a twitter error, but an async error of some kind. I have made some minor alterations to my website in this time, but I cant see anything I have changed that would cause this issue.
The code is below.
Can any one see why this error would occur?
protected void Publish_Click(object sender, EventArgs e)
    {
        DataAccess.Publish();
        SendEmails();
        SendTweet();
        Response.Redirect("OtherPage.aspx");
    }
public static void SendTweet()
    {
        string text = DataAccess.GetText();
        var twitter = new TwitterApi();
        var response = twitter.Tweet(text);
    }
public TwitterApi()
    {
        this.consumerKey = "XXX";
        this.consumerKeySecret = "XXX";
        this.accessToken = "XXX";
        this.accessTokenSecret = "XXX";
        sigHasher = new HMACSHA1(new ASCIIEncoding().GetBytes(string.Format("{0}&{1}", consumerKeySecret, accessTokenSecret)));
    }
public Task<string> Tweet(string text)
    {
        var data = new Dictionary<string, string> {
        { "status", text },
        { "trim_user", "1" }
    };
        return SendRequest("statuses/update.json", data);
    }
Task<string> SendRequest(string url, Dictionary<string, string> data)
    {
        var fullUrl = TwitterApiBaseUrl + url;
        // Timestamps are in seconds since 1/1/1970.
        var timestamp = (int)((DateTime.UtcNow - epochUtc).TotalSeconds);
        // Add all the OAuth headers we'll need to use when constructing the hash.
        data.Add("oauth_consumer_key", consumerKey);
        data.Add("oauth_signature_method", "HMAC-SHA1");
        data.Add("oauth_timestamp", timestamp.ToString());
        data.Add("oauth_nonce", "a"); // Required, but Twitter doesn't appear to use it, so "a" will do.
        data.Add("oauth_token", accessToken);
        data.Add("oauth_version", "1.0");
        // Generate the OAuth signature and add it to our payload.
        data.Add("oauth_signature", GenerateSignature(fullUrl, data));
        // Build the OAuth HTTP Header from the data.
        string oAuthHeader = GenerateOAuthHeader(data);
        // Build the form data (exclude OAuth stuff that's already in the header).
        var formData = new FormUrlEncodedContent(data.Where(kvp => !kvp.Key.StartsWith("oauth_")));
        return SendRequest(fullUrl, oAuthHeader, formData);
    }
async Task<string> SendRequest(string fullUrl, string oAuthHeader, FormUrlEncodedContent formData)
    {
        using (var http = new HttpClient())
        {
            http.DefaultRequestHeaders.Add("Authorization", oAuthHeader);
            var httpResp = await http.PostAsync(fullUrl, formData);
            var respBody = httpResp.ToString();
            return respBody;
        }
    }