使用twitter api发布推文时出错

时间:2015-07-26 04:47:30

标签: c# twitter

我试图通过c#使用twitter api发布推文。 我有应用程序权限的app键和appscecrt作为读写。 我也很难获得访问令牌。 但不是发布推文或更新状态的麻烦 但我每次都得到禁止的错误异常。谁能帮我这个。

    public class TwitAuthenticateResponse
    {
        public string token_type { get; set; }
        public string access_token { get; set; }
    }
    class twitterSupporter{       
        public void postTweets()
        {                  
          try
            {
                // api for posting tweets
              var timelineFormat = "https://api.twitter.com/1.1/statuses/update.json";

                HttpWebRequest timeLineRequest = (HttpWebRequest)WebRequest.Create(timelineFormat);
                var timelineHeaderFormat = "{0} {1}";
                timeLineRequest.Headers.Add("Authorization", string.Format(timelineHeaderFormat, twitAuthResponse.token_type, twitAuthResponse.access_token));
                timeLineRequest.Method = "Post";
                var timeLineJson = string.Empty;
                var status = "its done";
                using (Stream stream = timeLineRequest.GetRequestStream())
                {
                    byte[] content = ASCIIEncoding.ASCII.GetBytes(status);
                    stream.Write(content, 0, content.Length);
                }


                WebResponse timeLineResponse = timeLineRequest.GetResponse();

                using (timeLineResponse)
                {
                    using (var reader = new StreamReader(timeLineResponse.GetResponseStream()))
                    {
                        timeLineJson = reader.ReadToEnd();

                    }
                }

            }
            catch (WebException we)
            {
                //handle web exception
            }
    }

1 个答案:

答案 0 :(得分:0)

我看到你有一个Authorization标头,但是带有插件值的简单string.Format似乎不太有用。 OAuth标准需要一个专门处理的字符串,这里描述的是Twitter:

https://dev.twitter.com/oauth/overview/creating-signatures

以下是我在LINQ to Twitter中构建授权字符串的方法:

https://github.com/JoeMayo/LinqToTwitter/blob/master/src/LinqToTwitter/LinqToTwitter.Shared/Security/OAuth.cs

此外,OAuth流程在此过程中充满了陷阱,因此我收集了可能有助于常见问题解答的项目列表:

https://github.com/JoeMayo/LinqToTwitter/wiki/LINQ-to-Twitter-FAQ