我试图通过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
}
}
答案 0 :(得分:0)
我看到你有一个Authorization标头,但是带有插件值的简单string.Format似乎不太有用。 OAuth标准需要一个专门处理的字符串,这里描述的是Twitter:
https://dev.twitter.com/oauth/overview/creating-signatures
以下是我在LINQ to Twitter中构建授权字符串的方法:
此外,OAuth流程在此过程中充满了陷阱,因此我收集了可能有助于常见问题解答的项目列表:
https://github.com/JoeMayo/LinqToTwitter/wiki/LINQ-to-Twitter-FAQ