Как твитнуть в C # - PullRequest
       45

Как твитнуть в C #

3 голосов
/ 30 января 2012

Так что я очень новичок в C #, я начал изучать его несколько дней назад, и я хотел бы знать, как вы можете твитнуть с помощью C #. Я много искал в Google, смотрел некоторые видео на 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', но, похоже, она не работает, появляется всплывающее окно с сообщением о невозможности твитнуть. Я понятия не имею, почему это происходит. Я положил это наверху с помощью твиттерзера ;. Я также получил свой потребительский ключ, customersecret, токен и tokensecret. Так что я не знаю, в чем проблема, любая помощь будет принята с благодарностью. Спасибо!

Ответы [ 2 ]

2 голосов
/ 30 января 2012

Вы должны использовать 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;
    }
}
0 голосов
/ 01 февраля 2012

Без дополнительной информации помощь вам невозможна, поэтому вместо того, чтобы дать вам точный ответ, я постараюсь помочь вам выяснить, в чем заключается основная проблема.

Поместите точку останова в строку TwitterResponse<TwitterStatus> tweetResponse = TwitterStatus.Update(tokens, "Hello, #Twitterizer"); и отладьте приложение. Перешагните через эту строку, затем проверьте значение tweetResponse.ErrorMessage. Это должно предоставить вам необработанное сообщение об ошибке из Twitter, если оно есть. Если нет, посмотрите на tweetResponse.Content. Это свойство будет содержать необработанный ответ от Twitter, который может быть json, xml или даже html, в зависимости от проблемы.

Если вы отправляете проблемы, относящиеся к Twitterizer, эти значения почти всегда будут необходимы для их устранения.

...