所以我对C#很新,我几天前开始学习它,我想知道如何用C#发推。我搜索了很多谷歌,看了一些YouTube视频,但它们都很老了。我找到了Twitterizer.net,它有这段代码:
OAuthTokens tokens = new OAuthTokens();
tokens.AccessToken = "XXX";
tokens.AccessTokenSecret = "XXX";
tokens.ConsumerKey = "XXX";
tokens.ConsumerSecret = "XXX";
TwitterResponse<TwitterStatus> tweetResponse = TwitterStatus.Update(tokens, "Hello, #Twitterizer");
if (tweetResponse.Result == RequestResult.Success)
{
messagebox.Show("Message Tweeted!");
}
else
{
messageBox.Show("cannot tweet");
}
我将此代码放在一个按钮'button1'中,但它似乎无法正常工作它会弹出一个消息框,说不能发推文。我不知道为什么会这样。我使用twitterizer将它放在顶部;我还得到了我的消费者密钥,consumersecret,token和tokensecret。所以我不知道是什么问题,任何帮助将不胜感激。谢谢!
答案 0 :(得分:2)
你应该使用Twitter Callback。在Twitter的开发者部分进行设置。
using System;
using System.Diagnostics;
using TweetSharp;
using Hammock.Authentication.OAuth;
public static string Token = "XXX"
public static string TokenSecret = "XXX"
public static string ConsumerKey = "XXX"
public static string ConsumerSecret = "XXX"
public static string Callback = "XXX"
private static TwitterClientInfo TwitterClientInfo = new TwitterClientInfo()
{
ConsumerKey = ConsumerKey,
ConsumerSecret = ConsumerSecret,
};
private static TwitterService TwitterService = new TwitterService(TwitterClientInfo);
public static bool SetUpTwitter()
{
var OAuthCredentials = new OAuthCredentials
{
Type = OAuthType.RequestToken,
SignatureMethod = OAuthSignatureMethod.HmacSha1,
ParameterHandling = OAuthParameterHandling.HttpAuthorizationHeader,
ConsumerKey = ConsumerKey,
ConsumerSecret = ConsumerSecret,
CallbackUrl = "",
};
OAuthRequestToken requestToken = TwitterService.GetRequestToken(Callback);
Uri authUrl = TwitterService.GetAuthorizationUri(requestToken, Callback);
Process.Start(authUrl.AbsoluteUri);
DateTime currentTime = DateTime.Now;
DateTime endTime = currentTime.AddSeconds(30);
while (currentTime < endTime)
{
currentTime = DateTime.Now;
}
OAuthAccessToken accessToken = TwitterService.GetAccessToken(requestToken);
return SendMessage(accessToken.Token, accessToken.TokenSecret, "Send Sample Tweet");
}
public static bool SendMessage(string token, string tokenSecret, string message)
{
Token = token;
TokenSecret = tokenSecret;
if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(tokenSecret))
return SetUpTwitter();
try
{
TwitterService.AuthenticateWith(token, tokenSecret);
TwitterService.SendTweet(message);
return true;
}
catch
{
return false;
}
}
答案 1 :(得分:0)
如果没有更多信息,就无法为您提供帮助,因此,我会尝试帮助您找出潜在问题,而不是给您一个确切的答案。
在TwitterResponse<TwitterStatus> tweetResponse = TwitterStatus.Update(tokens, "Hello, #Twitterizer");
行放置一个断点并调试您的应用程序。跳过该行,然后检查tweetResponse.ErrorMessage
的值。这应该为您提供来自Twitter的原始错误消息(如果有)。如果没有,请查看tweetResponse.Content
。此属性将包含来自Twitter的原始响应,可能是json,xml甚至是html,具体取决于问题。
如果您提交与Twitterizer有关的问题,则几乎总是需要这些值来对其进行问题排查。