使用 twitter api 发布推文时出错

Posted

技术标签:

【中文标题】使用 twitter api 发布推文时出错【英文标题】:Error in Posting Tweets using twitter api 【发布时间】:2015-10-16 11:53:36 【问题描述】:

我尝试通过 c# 使用 twitter api 发布推文。 我有应用程序密钥和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
            
    

【问题讨论】:

您收到禁止响应的唯一原因是您的凭据之一不正确。查看所有详细信息并确保您也是 twitter 的注册用户,因为您必须是注册且知名的客户才能使用 api。 【参考方案1】:

我看到您有一个 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

【讨论】:

以上是关于使用 twitter api 发布推文时出错的主要内容,如果未能解决你的问题,请参考以下文章

使用Twitter API搜索推文时,“无法使用stdClass类型的对象作为数组”错误

当流媒体推文时,如何在Twitter Api中使用tweet_mode ='extended'?

从我的网站向 Twitter 帐户发布推文时如何使文本变为粗体或斜体

使用 Python Tweepy 的 Twitter 流 API

如何使用Twitter搜索API获取具有给定主题标签的所有推文?

Heroku Twitter API应用程序部署